JavaScript 立即调用了函数模式差异

JavaScript immediately invoked function pattern difference

本文关键字:模式 函数 调用 JavaScript      更新时间:2023-09-26

(function() {
	console.log('immediately invoked function...');
}.call(this));
(function() {
	console.log('immediately invoked function...');
}());

这两种 IIFE 模式之间有什么区别?

区别在于,在.call()的情况下,IIFE 中this的值是显式设置的(由.call()的第一个参数设置)。在第二种情况下,它是根据函数的调用方式确定的。

顺便说一下,在这种情况下,两者是相同的。

在上面的示例中,函数上下文(例如this关键字)设置为适用于 IIFE 所在的上下文)

参见 Function.prototype.call()