这些函数类型有什么区别?

时间:2015-03-10 10:53:38

标签: javascript

(function (foo) { alert(10); } ());

(function (foo) { alert(10); } )();

两者都是匿名调用的函数,但代码结构存在差异。我试图了解其中的差异。提前谢谢!

1 个答案:

答案 0 :(得分:1)

它们之间没有任何区别。外部的parens就是强制解析器将function视为表达式的开头,而不是声明的开头;是否将()调用结果函数在其内部或外部并不重要。你甚至根本不能使用外部的parens:



+function(foo) { alert(10); }();




+ 使解析器期望表达式而不是声明。

有关this answer中解析的这一方面的更多信息。