为什么`this`指向对象[duplicate]

问题描述 投票:0回答:1

此问题已经在这里有了答案:

在下面的代码中,为什么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
javascript node.js ecmascript-5
1个回答
0
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.