如果我試圖執行一個腳本,其唯一的源代碼行的對象:爲什麼匿名函數本身在JavaScript中有語法錯誤?
{prop:'value'}
它解析罰款(在V8和UglifyJS)。同樣,我可以將自己的字符串或數字作爲源代碼,並且沒有語法錯誤報告。
然而,無論是V8和UglifyJS抱怨這個對自己:
function(){}
我得到Uncaught SyntaxError: Unexpected token (
。
爲什麼當第一個例子中的對象很好時會中斷?函數不是JavaScript中的對象嗎?
我認識到聲明一個匿名函數而不執行它不會做任何事情;這不是問題。我想知道它爲什麼會導致解析錯誤。
那麼它缺少一個函數名稱,因爲聲明一個函數遵循規則'function [name](){[code]}'所以實際的問題可能是:爲什麼有特殊情況可以創建一個匿名函數? – yoshi
「匿名函數」更正確地說是沒有可選名稱的函數表達式(參見[FunctionExpression](http://ecma-international.org/ecma-262/5.1/#sec-A.5))。 – RobG
什麼是有趣的只是添加一些運算符,這工作:) '!function(){}; + function(){};' – abuduba