|
|||||||
Классы в Java Script: Наследование на классах. Функция extend
Время создания: 05.01.2011 12:05
Раздел: Компьютер - Программирование - Java Script - Классы в JavaScript
Запись: xintrea/mytetra_syncro/master/base/0000003377/text.html на raw.github.com
|
|||||||
|
|||||||
Итак, мы уже знаем, для того чтобы объект класса Rabbit унаследовал от класса Animal, нужно:
Однако, у такого подхода есть два недостатка:
К счастью, можно написать такую функцию, которая будет брать два класса и делать первый потомком второго: function extend(Child, Parent) { var F = function() { } F.prototype = Parent.prototype Child.prototype = new F() Child.prototype.constructor = Child Child.superclass = Parent.prototype } Использовать ее для наследования можно так: // создали базовый класс function Animal(..) { ... } // создали класс // и сделали его потомком базового function Rabbit(..) { ... } extend(Rabbit, Animal) // добавили в класс Rabbit методы и свойства Rabbit.prototype.run = function(..) { ... } // все, теперь можно создавать объекты // класса-потомка и использовать методы класса-родителя rabbit = new Rabbit(..) rabbit.animalMethod() Функция очень удобная и работает "на ура". Она не создает лишних объектов и в качестве бонуса записывает класс-родитель в свойство потомка superclass - это удобно для вызова родительских методов в конструкторе и при перекрытии методов. |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|