我看到了我找不到文档的行为,这似乎与JavaScript中绑定的工作方式不符。我希望有人可以让我更好地理解为什么在这种情况下this
被正确绑定:
class Dog {
constructor(name) {
this.name = name;
}
}
const rollOver = function() {
return `${this.name} is rolling over`;
}
const dog1 = new Dog('fido');
dog1.rollOver = rollOver;
console.log(dog1.rollOver());
通过我得到的节点运行它:
$ node dog.js
fido is rolling over
我从不调用绑定,但是rollOver正在正确设置它的上下文。为什么?!
因为您在调用时指定了this
的名称
dog1.rollOver()
当使用点语法调用函数时,点紧靠左的任何地方都将用作this