javascript - 自执行匿名函数约定

标签 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/

相关文章:

javascript - 计算对象值的出现次数

javascript - Threejs vector.unproject( this.camera ) 未定义

javascript - 如何获取鼠标当前指向的元素的属性

javascript - Node.js、Promises 和递归——可能吗?

javascript - 太妃糖数据库对我的多列进行排序

javascript - Highcharts 在开始时就失去了太多点

带别名的 javascript 正则表达式

javascript - 用 JavaScript 模仿 iPhone 主屏幕滑动

javascript - 如何仅在匹配特定哈希时隐藏元素?

javascript - 为什么 Javascript Listener 知道图像已加载,而 js 是加载序列中的最后一个文件?