2016-12-15 38 views
-2

我是新來的JavaScript,我讀一本書,它說:函數表達式求值第一

在函數表達式如f(0)(其中f是函數表達式)首先計算函數表達式。如果函數表達式的值不是可調用對象,則會引發TypeError。

是什麼意思那

(1)函數表達式計算第一

(2)函數表達式不是一個可調用對象?

我的想法:

(1):該函數的原語定義被加載第一

(2):對於從上面的例子( 「例如F(0)」),這意味着:有不存在這樣的功能f。

是嗎?

+0

函數表達式不一定只是一個函數名稱,它可以是任何複雜度的表達式。例如,你可以有一個函數數組,然後'array [i](0)'。它將評估表達式'array [i]'來獲得函數。 – Barmar

+0

這是哪本書? 'f(0)'是* CallExpression *,其中'f'是*標識符*。評估表達式時,會在當前環境中查找「f」的值。或者是'f'作爲任意表達的「元佔位符」? –

回答

0

函數表達式ES評估第一

這意味着JS引擎查找的f

值的函數表達式不是一個可調用OBJEKT

這意味着「如果f不是函數」