function test(json_parameters){console.log(json_parameters);}({"foo":"bar"});
在FF中不起作用,儘管..應該。這是一個錯誤?function(){}(args)在FF中不起作用?
function test(json_parameters){console.log(json_parameters);}({"foo":"bar"});
在FF中不起作用,儘管..應該。這是一個錯誤?function(){}(args)在FF中不起作用?
你需要用在括號功能:
(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"});
這不是一個有效的JavaScript語句,按標準的12.4:an 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"});