当我在范围外创建原型但引用它时,我无法访问nome属性。
'use strict';
function Cachorro(nome) {
this.nome = nome;
this.late = () => {
console.log(`${this.nome}: Au au au!`);
}
};
Cachorro.prototype.morde = () => {
console.log(`${this.nome}: #mordendo`);
}
const dolly = new Cachorro("Dolly");
dolly.late()
dolly.morde()
答案 0 :(得分:3)
原因是ES6箭头函数始终继承父作用域的this
。因此,您不希望将它们用于原型函数,因为this
是获取该对象实例属性的唯一方法。
所以转换一下:
Cachorro.prototype.morde = () => {
console.log(`${this.nome}: #mordendo`);
}
为:
Cachorro.prototype.morde = function() {
console.log(`${this.nome}: #mordendo`);
}