8

有没有区别:

(function(){

}).call(this);

(function(){

})();

或者

var MODULE = {};
(function(){
    this.hello = 'world'
}).call(MODULE);

var MODULE = {};
(function(m){
    m.hello = 'world'
})(MODULE);

我经常在编译的 javascript 中看到第一种情况。他们都将创建一个范围并做好他们的命名空间工作。

有什么区别还是只是口味问题。

编辑:为什么编译的javascript会使用IIFE调用?

4

1 回答 1

7
(function(){

}).call(this);

调用匿名函数,其中this函数内部将指向this调用时引用的对象。

(function(){

})();

调用匿名函数,this函数内部将指向全局对象(或在严格模式下未定义)

演示:小提琴

于 2013-07-12T02:47:19.377 回答