【发布时间】:2018-02-11 06:30:01
【问题描述】:
我对通过原型设计和 JavaScript 中的“this”关键字实现继承有些困惑。
let person = {
stomach: [],
eat(food) {
this.stomach.push(food);
}
};
let tony = {
__proto__: person
};
let peter = {
__proto__: person
};
tony.eat("shawarma");
alert( tony.stomach ); // shawarma
alert( peter.stomach ); // shawarma
在上面的示例中,为什么即使没有推送任何内容,最后一行也会给出答案“shawarma”?
【问题讨论】:
-
因为 JavaScript 正在寻找
peter.__proto__.stomach。参考basarat.gitbooks.io/typescript/docs/classes-emit.html -
两个
__proto__指向同一个对象person -
感谢您的编辑。它确实回答了我的问题。 @T.J.克劳德
标签: javascript