之间有区别吗:
(function(){
}).call(this);
and
(function(){
})();
or
var MODULE = {};
(function(){
this.hello = 'world'
}).call(MODULE);
and
var MODULE = {};
(function(m){
m.hello = 'world'
})(MODULE);
我经常在编译的 javascript 中看到第一种情况。他们都会创建一个范围并做好命名空间工作。
有什么区别还是只是口味问题。
Edit:为什么编译后的 javascript 会使用 IIFE 调用?
(function(){
}).call(this);
调用匿名函数,其中this
函数内部将指向所引用的对象this
当打电话的时候。
(function(){
})();
调用匿名函数,其中this
函数内部将指向全局对象(或在严格模式下未定义)
Demo: Fiddle http://jsfiddle.net/arunpjohny/2QrXC/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)