2011-05-06 52 views

回答

5

你需要用在括號功能:

(function test(json_parameters){console.log(json_parameters);})({"foo":"bar"}); 

否則將被視爲一個函數聲明後跟一個對象字面語句,就像這樣:

function test(json_parameters) { 
    console.log(json_parameters); 
}; 
({"foo":"bar"}); 

所有主要的瀏覽器以同樣的方式工作。

1

您需要在函數定義的周圍放置括號才能使其工作。

(function test(json_parameters){console.log(json_parameters);})({"foo":"bar"}); 
1

這不是一個有效的JavaScript語句,按標準的12.4an ExpressionStatement cannot start with the function keyword because that might make it ambiguous with a FunctionDeclaration。由於它不是一個有效的語句,因此在}符號後面會自動插入一個分號,使其有效,每7.9.1將其分爲兩個單獨的部分,一個function declaration和一個表達式語句(它什麼都不做)。

要使其工作,您必須確保它不以function關鍵字開頭。做着是

(function test(json_parameters){console.log(json_parameters);})({"foo":"bar"}); 

的兩種常用方法
(function test(json_parameters){console.log(json_parameters);}({"foo":"bar"})); 

但什麼都應該工作太像

+function test(json_parameters){console.log(json_parameters);}({"foo":"bar"}); 
相關問題