【发布时间】:2018-12-11 19:11:50
【问题描述】:
我只是在学习原型继承,并且对Object的使用有点混淆.Create()。我对以下代码中为什么需要 Object.create() 感到困惑:
function Mammal (name){
this.name = name;
this.offspring = [];
}
Mammal.prototype.haveBaby = function (){
var baby = new Mammal('Baby ' + this.name);
this.offspring.push(baby);
return baby;
}
function Cat (name, color){
Mammal.call(this, name);
this.color = color;
}
Cat.prototype = Object.create(Mammal.prototype);
#987654322 @未通过哺乳动物的方法?这就是为什么我们需要Object.create()?
【问题讨论】:
-
否,调用其他构造函数仅在该构造函数中运行初始化代码。它不影响原型链。首选
Object.create()来实现继承的技术原因相当复杂。足以说这样做那种方式是一个非常好的主意。 span> -
与您的问题无关,但您是否意识到您的猫对象会产生非猫的后代?
标签: javascript object inheritance prototype prototypal-inheritance