一尘不染

!function(){}()vs(function(){})()

javascript

在查看Twitter Bootstrap Javascript中编写的一些代码时,看起来他们正在调用立即调用的匿名函数,如下所示:

!function( $ ) {

     ...

}(window.jQuery || window.ender);

在我传统上看过的同一件事中,这种方式就是这样完成的:

(function($) {

    ...

})(window.jQuery || window.ender);

第一种方法似乎有点笨拙,而且我不确定用这种方法而不是第二种方法有什么好处或理由吗? 请注意,我了解它是如何工作的,我想了解他们为什么选择这种方式。


阅读 303

收藏
2020-05-01

共1个答案

一尘不染

  • 缩小后少一个字符。
  • !应处理,而其他的JavaScript代码在此之前连接起来并没有尾随分号。

没有太大的区别。我会用你更喜欢的方式。您可能应该在示例开始时扔一些东西以避免…

base.js

var lol = function() {
   alert(arguments[0]);
}

im-concat-to-base.js

(function() {
    // Irrelevant.
})();
2020-05-01