Можно ли вызвать обычный метод из прототипа, если он был переопределен? Обратите внимание, что в данном примере первый метод eat() вызывается из тела функции Animal - это требование.Javascript - вызов дочернего метода из метода прототипа
Animal = function(){
this.eat();
};
Animal.prototype.eat = function() {
console.log("All animals eat");
};
Bear = function(){
Animal.call(this);
this.goToSleep = function(){
console.log("Bears go to sleep after they eat");
}
};
Bear.prototype = Object.create(Animal.prototype);
Bear.prototype.eat = function() {
console.log("Bears eat honey");
this.goToSleep(); //returns 'undefined is not a function'
//How do I invoke this.goToSleep() ?
};
var winnie = new Bear();
Почему бы не определить его как «Bear.prototype.goToSleep»? – loganfsmyth
Вы не должны смешивать функциональный шаблон с образцом прототипа. Определите все методы прототипа или определите их все на каждом экземпляре. (Шаблон прототипа предпочтительнее, потому что он избегает дублирования.) – bgoldst