我正在研究如何使用创建一些插件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直接非方法调用使用.thisundefined
这段代码
(function() {
'use strict'
console.log(this)
}).call(window);
将记录window,因为第一个参数call用于提供this给被调用的函数。
如果我不得不猜测,我会说这样做是为了模仿使用window(而不是undefined) forthis的非严格非方法调用的非严格行为。window如果你的意思是简单地使用window。