在下面的代码中,为什么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
答案 0 :(得分:0)
您在对象创建时调用test触发第一次记录,并将创建的函数存储到对象。您在全局级别调用该函数,因此可以在该范围内解决此问题。
这是面试问题吗? 您想达到/理解什么?
编辑: 请参阅本指南,以更好地解释“ this”: https://dmitripavlutin.com/gentle-explanation-of-this-in-javascript/