PDA

Просмотр полной версии : Еще раз о наследовании классов ?


avtushko
03.02.2003, 09:11
Проблема с наследованием свойств

Пищу :

function MyXMLClass()
{
this.init();
}

MyXMLClass.prototype = new XML();

MyXMLClass.prototype.init = function()
{
trace(this.status);
}

MyXML = new MyXMLClass();

Результат - undefined

Может кто подскажет в чем дело.

C2Plus
03.02.2003, 11:25
дело в том, что при наследовании во флэше НЕ вызывается конструктор родительских классов, соответственно, объект НЕ инициализируется. Это приводит к непонятностям такого типа. Чтобы вызвать родительский конструктор, используй ключевое слово super:

function MyXMLClass()
{
super();
this.init();
}

MyXMLClass.prototype = new XML();

MyXMLClass.prototype.init = function()
{
trace(this.status);
}

MyXML = new MyXMLClass();


P.S. - super также может использоваться для вызовов родительских методов:
super.load("chat.ru");

avtushko
03.02.2003, 11:35
C2Plus

Большое спасибо все заработало