2011-05-06 24 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"}); 
相关问题