这两种看似相似的闭包类型有什么区别?

时间:2011-07-28 08:36:51

标签: javascript jquery function parameters closures

  

可能重复:
  Location of parenthesis for auto-executing anonymous JavaScript functions?

我现在好奇,我已经看到了这两个类似的例子:

(function ($) {
  // code
}(jQuery));

(function ($) {
  // code
})(jQuery);

有什么区别,如果有,是什么?

2 个答案:

答案 0 :(得分:4)

没有区别,他们做同样的事情。你需要匿名函数周围的parens,但是你是否将parens触发调用在那些内部或外部并不重要。有些人认为前者更“正确”(虽然我从来没有听过强烈的理由,只是Crockford's assertion它更清楚,我对此表示反对)。后者(根据我的经验)更为常见。

答案 1 :(得分:-1)

有一对支架外侧功能定义没有意义,现在,没有差异。

这两个等于function(){}(jQuery);