为什么“ this”指向对象

时间:2019-11-05 17:38:44

标签: javascript node.js ecmascript-5

在下面的代码中,为什么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

1 个答案:

答案 0 :(得分:0)

您在对象创建时调用test触发第一次记录,并将创建的函数存储到对象。您在全局级别调用该函数,因此可以在该范围内解决此问题。

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

编辑: 请参阅本指南,以更好地解释“ this”: https://dmitripavlutin.com/gentle-explanation-of-this-in-javascript/