<分区>
以下有区别吗?它们的工作方式都一样吗?
我见过 .call()
的某些用例,但我从未见过关于为什么函数调用括号位于匿名函数声明内部或之后的解释。
(function() {
}());
^^
(function() {
})();
^^
(function() {
}).call();
标签 javascript
<分区>
以下有区别吗?它们的工作方式都一样吗?
我见过 .call()
的某些用例,但我从未见过关于为什么函数调用括号位于匿名函数声明内部或之后的解释。
(function() {
}());
^^
(function() {
})();
^^
(function() {
}).call();
最佳答案
前两个是相同的,只是风格不同*;最后一个不同之处在于它使您能够控制 IIFE 中 this
的值。例如
(function(){
this.a = 12;
}).call(foo);
将属性 a
添加到对象 foo。
*当然是道格拉斯·克罗克福德 has a preference
关于javascript - 自执行匿名函数约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27530779/