我正在研究如何使用创建一些插件angularjs
,其中一些我遇到了这个问题:
(function() {
'use strict'
//code...
}).call(window);
与仅使用如下所示的自调用函数有什么区别?
(function() {
'use strict'
//code...
})();
我正在研究如何使用创建一些插件angularjs
,其中一些我遇到了这个问题:
(function() {
'use strict'
//code...
}).call(window);
与仅使用如下所示的自调用函数有什么区别?
(function() {
'use strict'
//code...
})();
这两个调用将具有不同的this
值。
这段代码
(function() {
'use strict'
console.log(this)
})();
将记录,因为严格模式函数的undefined
直接非方法调用使用.this
undefined
这段代码
(function() {
'use strict'
console.log(this)
}).call(window);
将记录window
,因为第一个参数call
用于提供this
给被调用的函数。
如果我不得不猜测,我会说这样做是为了模仿使用window
(而不是undefined
) forthis
的非严格非方法调用的非严格行为。window
如果你的意思是简单地使用window
。