我在JS中找出原型,我不能为我的生活找到原因,为什么这不起作用:
var Mammal = {
legs: 4
}
function Dog(color, soundItMakes) {
this.prototype = Mammal;
this.color = color;
this.soundItMakes = soundItMakes;
this.woof = function() { return this.soundItMakes; }
}
aDog = new Dog("brown", "beep beep!");
document.write(Mammal.legs + "<br>");
document.write(aDog.color + "<br>" + aDog.woof() + "<br>" + aDog.legs);
第一个document.write()
按预期返回4,但第二个返回未定义的aDog.legs。任何建议都将是一个巨大的帮助。
答案 0 :(得分:1)
现在prototype
是Dog
实例对象的自有属性。因此,如果您希望可以像aDog.prototype.legs
那样访问它。但是,这与设置Dog
构造函数原型不同。
您的代码应为:
var Mammal = {
legs: 4
}
function Dog(color, soundItMakes) {
this.color = color;
this.soundItMakes = soundItMakes;
this.woof = function() { return this.soundItMakes; }
}
Dog.prototype = Mammal;