【发布时间】:2021-01-06 17:30:12
【问题描述】:
所以我正在尝试使用代理方法设置原型继承,但我遇到了一种对我来说似乎很奇怪的行为。这是我的课程:
function Animal(name) {
this.name = name;
}
Animal.prototype.eat = function() {
console.log("mmm... food...")
};
function Dog(name) {
this.name = name
};
var Surrogate = function() {}
Surrogate.prototype = Animal.prototype;
现在,我想将 Animal 设置为基类。如果我创建一个代理实例:
浏览器控制台说 s 是 Surrogate 的一个实例。
但是,当我将 Dog 类的原型设置为 Surrogate 的实例时:
它变成了 Animal 的一个实例?为什么会这样?这是正确的还是我解释错了?
【问题讨论】:
-
Surrogate 是 Animal 的一个实例,因此 Dog 对调试器来说也应该是 Animal 的一个实例
标签: javascript prototypal-inheritance