MyTetra Share
Делитесь знаниями!
Классы в Java Script: Наследование
Время создания: 05.01.2011 12:05
Раздел: Компьютер - Программирование - Java Script - Классы в JavaScript
Запись: xintrea/mytetra_syncro/master/base/0000003374/text.html на raw.github.com

Наследование

Сделаем класс, наследующий от Animal - назовем его Rabbit. Для этого сначала объявим функцию:

Rabbit.function Rabbit(name) {

this.name = name

}

Пока что она просто создает объекты Rabbit. Поставим свойство prototype, чтобы новые объекты имели прототип animal (мы объявили этот объект чуть выше). Делается это командой Rabbit.prototype = animal.

// Конструктор объектов Animal

function Animal(name) {

this.name = name

this.canWalk = true

}

// Создается объект Animal

var animal = new Animal("скотинка")

// Конструктор объектов Rabbit

function Rabbit(name) {

this.name = name

}

// Указывается, что прототип Rabbit наследуется от Animal

Rabbit.prototype = animal

// Создаются объекты Rabbit

big = new Rabbit('Chuk')

small = new Rabbit('Gek')

// Вывод значений свойств на экран

alert(big.name) // Chuk

alert(big.canWalk) // true

alert(small.name) // Gek

Свойство name хранится прямо в объектах Rabbit, а canWalk берется из прототипа animal.

Так как у обоих кроликов один прототип, то его изменение тут же отразится на обоих:

// Вывод свойства на экран

alert(big.canWalk) // true

// Изменение свойства в базовом прототипе

animal.canWalk = false

// Вывод свойств на экран

alert(big.canWalk) // false

alert(small.canWalk) // false

 
MyTetra Share v.0.59
Яндекс индекс цитирования