有没有条件if(this) {}不成立的情况?因为我想不出this未定义的场景。
这不是一个重要的问题,也不是任何人通常都会使用的问题,我只是出于纯粹的好奇心而问。
是的,在某些执行上下文中,thisis undefined,这在 JavaScript 中是假的:
但是,在严格模式下,如果在进入执行上下文时未设置 this 的值,则它将保持未定义状态,如下例所示:
这里至少有一种复杂的场景,其中必须满足以下条件:
window)foo()而不是window.foo())thisfunction foo() {
'use strict'; // see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode
return this;
}
Run Code Online (Sandbox Code Playgroud)
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this