JavaScript 自调用函数

标签 javascript self-invoking-function

<分区>

Possible Duplicate:
Difference between (function(){})(); and function(){}();
Are “(function ( ) { } ) ( )” and “(function ( ) { } ( ) )” functionally equal in JavaScript?

我只是想知道这两个示例之间是否存在差异(关于功能):

第一

(function foo() {
console.log("bar")
})()

第二

(function foo() {
console.log("bar")
}())

两者似乎都工作正常......

谢谢!

最佳答案

没有区别。事实上,您需要使用 () 只是因为简单...

function() { console.log('bar'); } ();

... 不会被 JS 解析器正确识别。正如ES5 standard中所说:

Also, an ExpressionStatement cannot start with the function keyword because that might make it ambiguous with a FunctionDeclaration.

另一种((...))解决方案是用一些一元运算符扩充此语句。两者...

+function() { console.log('bar'); } ();

...和...

!function() { console.log('bar'); } ();

... 会起作用。

关于JavaScript 自调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14011509/

相关文章:

javascript - 使用 Node js 运行 Angular 应用程序

javascript - 如何组合两个数组的属性?

javascript - 如何调用自调用函数

javascript - 自调用匿名函数

javascript - (func)() 和 (func).call(window) 之间的区别

javascript - 2 以下自调用函数不起作用

javascript - IE点击子项不关注父项,父项有tabindex=0

javascript - Selenium 在 JS 中使用 async/await,查找并单击元素

javascript - 如何在主旋转木马之外重新定位 lightslider.js 控件

javascript - 这三种形式的自调用匿名函数有什么区别?