为什么"this"指向对象



在下面的代码中,为什么test函数的second this指向obj,而first this指向window对象?

特别是,我如何通过查看一段代码来猜测this的值?

var test = function(){
console.log('first', this)
return function(){
console.log('second', this)
}
}
var obj = {
a: 1,
b: test()
}
obj.b() // execute function

您在对象创建时调用test,触发第一次日志记录,并将创建的函数存储到对象中。您在全局级别上调用该函数,因此这将在该范围内得到解决。

这是某种面试问题吗?你想达到/理解什么?

编辑:有关"this"的详细解释,请参阅本指南:https://dmitripavlutin.com/gentle-explanation-of-this-in-javascript/

相关内容

最新更新