outer
的对象属性的函数meth
没有在this
函数中为inner
的执行上下文?由于分配给outer
的函数meth
似乎会自动将设置为周围对象的this
关键字作为执行上下文,因此您可以假定函数inner
的处理方式相同,或者是因为周围的函数不能被视为执行上下文,所以JavaScript不知道函数inner
处于哪个执行上下文,因此它假定默认值是window
?
var foo = {
meth: function outer() {
console.log(this);
// let that = this;
function inner() {
console.log(this);
}
inner();
}
};
//Output
{meth: ƒ}
Window {parent: Window, opener: null, top: Window, length: 0, frames: Window, …}
预先感谢您揭开神秘面纱