7
我是學習JavaScript概念的新手。想要了解原型繼承如何工作。我的印象是,如果你的類繼承了它的父類,並且在兩個類的原型中有相同的命名方法,那麼當你在子實例上調用該方法時,子類原型中的方法將被調用。JavaScript原型覆蓋
代碼:
function Animal(name) {
this.name = name;
}
Animal.prototype.printName = function() {
console.log(this.name + ' in animal prototype');
}
function Cat(name) {
Animal.call(this, name);
}
Cat.prototype.printName = function() {
console.log(this.name + ' in cat prototype');
}
Cat.prototype = Object.create(Animal.prototype);
var anm1 = new Animal('mr cupcake');
anm1.printName();
var cat1 = new Cat('cat');
cat1.printName();
在調用cat1.printName()我預期的日誌「在貓的原型貓」,但它記錄的「動物原型貓」。有人可以向我解釋原因嗎?謝謝。
謝謝你這麼多的解釋。 – shilpi