下面的代码会返回相同的结果吗?我真的无法理解这个关键字。
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
的文档可能会有所帮助。