可能重复: 自动执行匿名JavaScript函数的括号位置?
有时我看到:
(function() { ... }()); 有时我看到:
(function() { ... })(); 我看到这两种形式都有和没有争论。他们使用匿名函数两者都有 执行。
这两种形式有什么不同吗?是否有任何令人信服的理由使用一种而另一种形式?
发布于 2010-09-23 22:49:06
就编译器而言,两者之间没有区别。然而,会发现(function () {}())风格是推荐在道格拉斯克罗克福德的JavaScript 代码约定。
发布于 2010-09-23 23:19:01
就分歧而言,它实际上只是句法上的糖。有点类似于:“您喜欢jQuery()还是$()?”两者都可以编译、执行和交替使用(AFAIK)。
从我到目前为止看到的代码示例来看,似乎有更多的人遵循了Crockford代码约定:
(function() { ... }()); 就我个人而言,我更喜欢(function(){})();约定,因为在我看来,这个函数是自动执行的;我也是jQuery的大用户,这是jQuery源代码中使用的约定。
此外,使用parens将您的自动执行函数括起来被认为是一个很好的实践,而不管您选择哪种形式。
https://stackoverflow.com/questions/3783007
复制相似问题