пятница, 24 мая 2013 г.

JavaScript наследование и множественное наследование классов через prototype

// Родительский класс 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");

Комментариев нет:

Отправить комментарий