Flash - статьи

         

Наследование объектов


Задание свойства "__proto__" для создания наследования практиковалось в Flash Player 5. Эта практика не поддерживается в Flash Player 6, и ее использование не рекомендуется. Свойство __proto__ должно рассматриваться как свойство только для чтения (read-only). Правильный способ создания наследования — это создание цепочки прототипов. Чтобы создать цепочку прототипов, установите свойство "prototype" функции конструктора подкласса (subclass) в экземпляр надкласса (superclass), используя следующий синтаксис:

ChildClass.prototype = new ParentClass();

Пример этой практики:

function Shape()

{

}

function Rectangle()

{

}

Rectangle.prototype = new Shape();

Следующая практика НЕ рекомендуется:

Rectangle.prototype.__proto__ = Shape.prototype;

Если разработчики беспокоятся, что такая форма наследования приведет к тому, что весь конструктор будет признан необязательным, следующий код поможет предотвратить это:

_global.SuperClassConstructor = function() {

    if (this._name!=undefined) {

        // код конструктора размещается здесь

    }

}

В вышеприведенном примере код конструктора не будет выполнен, потому что еще не определен экземпляр. Заметьте, что этот код работает только в классах, основанных на классе MovieClip.



Содержание раздела