"This" JavaScript 中的关键字



下面的代码会返回相同的结果吗?我真的无法理解这个关键字。

var o = {
    prop: 37,
    f: function () {
        return this.prop;
    }
};
console.log(o.f()); // logs 37

var A = {
    prop: 37,
    f: function () {
        return A.prop;
    }
};
console.log(o.f()); // logs 37

(我假设你打算在第二部分中调用A.f()

是的,它们将返回相同的结果。第二个示例可能很难让两个对象实例共享相同的功能,但在许多情况下,这并不重要。

除了某些必须手动设置的"绑定"或"搭便车"情况外,this可以从方法调用前的点确定。

iamthis.callmethod()

是的,这两段代码将返回相同的结果。

当函数作为对象的方法调用时,其 this 设置为 调用该方法的对象。

在这里,调用它的对象在这两种情况下都是相同的。

有关this的文档可能会有所帮助。

最新更新