Можно ли получить Dog
и Cat
наследовать от Animal
(без использования class
или extends
ключевых слов), без редактирования кода, который уже был написан, и , сохраняя при этом все новый код в функции текущего конструктора?DRY JavaScript Наследование от Внутри Конструктора
function Animal() {
this.sleep = function() {
var hoursSleepPerNight = this.hoursSleepPerNight;
console.log("z".repeat(hoursSleepPerNight));
}
}
function Dog() {
this.hoursSleepPerNight = 8;
}
function Cat() {
this.hoursSleepPerNight = 7;
}
var dog = new Dog();
dog.sleep();
// "zzzzzzzz"
'Dog.prototype = Object.create (Animal.prototype)', но обратите внимание, что 'sleep' является собственным свойством, он не будет наследоваться. Вы можете попробовать «Dog.prototype = new Animal()», но имейте в виду побочные эффекты. – elclanrs
Зачем вам это нужно? – Bergi
@Bergi, желаемое за действительное, что JavaScript может заставить себя вести себя как Python/Ruby, я полагаю. – Trajanson