Наследование объектов
Задание свойства "__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.