小编wpa*_*ark的帖子

使用箭头函数时封闭词法上下文的含义(词法 this)

我有一个关于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。你能帮我理解这一点吗?如何找到词汇上下文?

javascript this

3
推荐指数
1
解决办法
1261
查看次数

标签 统计

javascript ×1

this ×1