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"});