// Родительский класс Animal и его метод sayName.
function Animal(name, numLegs) {
this.name = name;
this.numLegs = numLegs;
this.boss = 3;
}
Animal.prototype.sayName = function() {
console.log("Hi my name is "+this.name);
};
// Дочерний класс Penguin, который ниже наследует все свойства и методы родителя, но замещает их своими свойствами и методами.
function Penguin (name){
this.name = name;
this.numLegs = 2;
}
// Установка наследования классом Penguin всех свойств и методов родительского класса Animal и замещение их своими.
Penguin.prototype = new Animal();
// Проверка
var penguin = new Penguin("Boris");
penguin.sayName(); // Метод от родителя Animal
console.log(penguin.numLegs); // Собственное свойство Penguin
console.log(penguin.boss); // Свойство от родителя Animal
Пример множественного наследования классов через prototype.
function Animal(name, numLegs) {
this.name = name;
this.numLegs = numLegs;
this.isAlive = true;
}
function Penguin(name) {
this.name = name;
this.numLegs = 2;
}
function Emperor(name) {
this.name = name;
this.saying = "Waddle waddle";
}
Penguin.prototype = new Animal();
Emperor.prototype = new Penguin();
var myEmperor = new Emperor("Boris");
Комментариев нет:
Отправить комментарий