JavaScript 立即调用了函数模式差异
JavaScript immediately invoked function pattern difference
(function() {
console.log('immediately invoked function...');
}.call(this));
(function() {
console.log('immediately invoked function...');
}());
这两种 IIFE 模式之间有什么区别?
区别在于,在.call()
的情况下,IIFE 中this
的值是显式设置的(由.call()
的第一个参数设置)。在第二种情况下,它是根据函数的调用方式确定的。
顺便说一下,在这种情况下,两者是相同的。
在上面的示例中,函数上下文(例如this
关键字)设置为适用于 IIFE 所在的上下文)
参见 Function.prototype.call()
相关文章:
- Node.js使用Series函数(模式?)实现流控制时出现意外结果
- Mongoose TypeError:实例化模式类型的对象时,对象不是函数
- 将值传递到jQuery成功函数中的引导模式
- JavaScript模块模式-如何在使用对象/函数之前激发构造函数/init函数
- 为什么在javascript中的模块模式中实现Lazy函数时范围会发生变化
- 为模式设置的值在通过 AJAX 成功函数设置时不显示
- 将值传递给模式窗口中的 JavaScript 函数
- 传递参数时如何避免模块模式中的 getter/setter 函数
- 未知的 JavaScript 函数声明模式
- 如何在 JavaScript 函数中获取传递给引导模式的参数
- 函数调用的变量更改未显示在角度引导模式窗口中
- twitter引导模式——如何将数据传递给回调函数
- 如何在javascript函数中显示引导模式
- 在引导模式中使用“ng click”触发函数
- 模块模式:函数未定义
- 同步/异步AJAX函数的模式
- 是'要求(..)'常见的javascript模式或库函数
- javascript严格模式下oop函数的全局初始化
- Javascript DRY设计模式-函数与对象
- 在JavaScript中实现模块模式函数的最佳方式