关于原型继承JS的误解

时间:2016-08-29 13:06:53

标签: javascript inheritance prototype ecmascript-5

你可以帮我解决一下关于JavaScript中原型继承的误解



function Animal(name) {
    this.name = name;
}


Animal.prototype.speak = function() {
    console.log("My name is " + this.name);
};

Animal.sayMoo = function(){
console.log("Mooooo!");
};

var animal = new Animal('Monty');

animal.speak(); // My name is Monty
animal.sayMoo; // undefined




据我所知,对象的任何实例都具有其所有属性,并且在此示例中,animal(Animal的实例)仅包含构造函数内的内容" this.name"和方法" speek()" 但不是" sayMoo"因为我没用(Animal.protoype.sayMoo = ...

我认为动物或任何实例只能继承Animal.prototype

中的内容

是正确答案吗? 如果是的话,为什么动物会继承构造函数中的内容?也许构造函数中的所有属性都会自动转到原型​​,所以它可以被任何实例继承吗?

我希望我解决这个问题

0 个答案:

没有答案