将此示例视为心理练习。我不明白为什么它会返回真实。当然,内部this
应限定为匿名函数,外部this
根本不与该函数相关。
var result = (function() {
return this;
}()) === this;
var el = document.createElement("div")
el.innerHTML = result;
document.body.appendChild(el)

答案 0 :(得分:3)
这里没有太多的范围,只有" context"。
由于在没有上下文的情况下调用IIFE,因此内部this
默认为window
(除了ES5"严格模式"),它们也是默认值{{1在全球范围内。
答案 1 :(得分:0)
这个问题不是范围界定,而是背景。
JS中的上下文(即this)通常被设置为调用该函数的对象。
在这种情况下,没有用户定义的对象调用IIFE,因此其中的上下文默认为全局对象,因此为真。
指定严格模式将导致IIFE内的上下文未定义,从而降低意外全局对象更改的可能性。