下⾯ JS 代码输出什么?

var status = "😎 "
setTimeout(() => {
    const status = "😍 "
    const data = {
        status: "🥑 ",
        getStatus() {
            return this.status
        }
    }

    console.log(data.getStatus())
    console.log(data.getStatus.call(this))
}, 0)
1027 次浏览
  • A、"😎 " and "😎 "
this关键字的指向取决于使⽤它的位置。在函数中,⽐如 getStatus, this指向的是调⽤它 的对象,上述例⼦中 data对象调⽤了 getStatus,因此 this指向的就是 data对象。当我们 打印 this.status时, data对象的 status属性被打印,即 "🥑 "。 使⽤ call⽅法,可以更改 this指向的对象。data.getStatus.call(this)是将 this的指 向由 data对象更改为全局对象。在全局对象上,有⼀个名为 status的变量,其值为 ”😎 “。 因此打印 this.status时,会打印 “😎 ”。
挑战失败
2年前
挑战失败
2年前
挑战失败
2年前
挑战失败
2年前
挑战失败
3年前
挑战失败
4年前
挑战失败
4年前