我有一个关于thisjavascript 的问题。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this
当我读这篇文章时,它说
在箭头函数中,
this保留封闭词法上下文的 this 值。在全局代码中,它将被设置为全局对象
但例如下面的代码
const person = {
hobby: "loafing around",
sayHobby: function() {
setTimeout(() => {
console.log(`My hobby is ${this.hobby}`);
}, 100);
}
};
person.sayHobby()Run Code Online (Sandbox Code Playgroud)
在此示例中,setTimeout 中的箭头函数回调被包含在 setTimeout 函数中。所以我认为this它应该是全局的(窗口),因为 setTimeout 是在全局对象中定义的。
我知道我的想法是错误的,但不知道如何理解这句话的意思enclosing lexical context。你能帮我理解这一点吗?如何找到词汇上下文?