![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
|
|||||
|
"человек"
Регистрация: Nov 2002
Адрес: +-
Сообщений: 1,807
|
я что-то непонямаю
![]() а вообще по-моему вот самй лучший вариант ![]() function SuperClass() {
trace("SuperClass constructor called");
this.__proto__.f1 = function() {
trace("f1 called");
};
this.__proto__.f2 = function() {
trace("f2 called");
};
}
function SubClass() {
trace("SubClass constructor called");
}
SuperClass.prototype.f3 = function() {
trace("f3 called");
};
SubClass.prototype.__proto__=SuperClass.prototype
obj = new SuperClass();
trace("---------------");
obj.f1();
obj.f2();
obj.f3();
trace("******************************");
obj2=new SubClass();
trace("---------------");
obj2.f1();
obj2.f2();
obj2.f3();
__________________
flash it |
|
|||||
|
wanted
Регистрация: Sep 2002
Сообщений: 1,737
|
Алексей, приятно разговаривать с человеком, который, по всей видимости, читал Дебройля
SubClass.prototype.__proto__=SuperClass.prototype -- объяснишь, как это работает? |
|
|||||
|
Регистрация: Dec 2002
Адрес: Сочи
Сообщений: 2,819
|
Как это работает - Дебройль прекрасно и объяснил :
"Хитрость в том, что нужно сделать два класса и направить __proto__ прототипа первого на прототип другого (вместо Object.prototype). Таким образом вы получите "младший" класс, подкласс (SubClass) и "старший" класс, суперкласс (SuperClass). Делается это простой операцией: SubClass.prototype.__proto__ = SuperClass.prototype;" Нам же что бы найти F2 надо порыться не в прототипе SuperClass, а в его конструкторе. Ну так и поройтесь, чего притихли, где продолжение банкета? |
|
|||||
|
wanted
Регистрация: Sep 2002
Сообщений: 1,737
|
Цитата:
Цитата:
|
|
|||||
|
Регистрация: Apr 2003
Адрес: DC
Сообщений: 4,489
|
Цитата:
Молодец Лёха. Как житуха? ![]() ![]() Учёба напрягает...
__________________
flash/flex/unity |
|
|||||
|
Регистрация: Dec 2002
Адрес: Сочи
Сообщений: 2,819
|
Ладно, раз Нуран сдался, мне то чего тянуться.
Подтягивай Серёга тяжелую артилерию. Я так понял, ты котегор. не хочешь засовывать метод f2 в прототип SuperClass, типа SubClass.prototype.__proto__=SuperClass.prototype ; SuperClass.prototype.f2=function() { trace("f2 called"); }; Вариант SubClass=SuperClass.prototype.constructor ; тоже не проходит, при нём твою строчку SubClass.prototype.__constructor__ = SuperClass; можно вообще убрать, трэйсится будет что надо, но механизм наследования не вырисовывается. Я скажу по простому - инфы ни хрена нету ниде. У Мука constructor - 15 строчек, у Дебройля - 2страницы Но даже не в этом дело. Врубится бы чего ты написал SubClass.prototype.__constructor__ = SuperClass; Стыдно признаться не знаю что есть __constructor__ Ставлю trace(SuperClass.prototype.__constructor__); выводится undefined Ставлю trace(SuperClass.prototype.constructor); выводится всё путём - [type Function] В общем бардак. Мож у нас на Руси Дебройли и есть, но тока куда то попрятались. Дембинского очень уважаю, так у него последнее обновление с год назад. Здесь на Флэшере уроков по ООП и близко нету. Потрошитель уделил этому делу 10 строчек в глосарии. Разбирайтесь мол сами. Мож ничего не подсказывать, только чиркани, чем отличается __constructor__ от constructor |
|
|||||
|
wanted
Регистрация: Sep 2002
Сообщений: 1,737
|
Цитата:
нуран не сдался, он даже не пытался. Цитата:
Цитата:
__constructor__ -- штука как бы недокументированная, но работает, как видишь. чтоб не нагружать тебя словесным бредом: a=obj2.__constructor__; --> Ctrl+Alt+V мысль продолжим? |
|
|||||
|
"человек"
Регистрация: Nov 2002
Адрес: +-
Сообщений: 1,807
|
Цитата:
![]()
__________________
flash it |
|
|||||
|
wanted
Регистрация: Sep 2002
Сообщений: 1,737
|
ну-ка не хулигань тут!
не видишь, конструктивная беседа завязалась? ![]() |
|
|||||
|
"человек"
Регистрация: Nov 2002
Адрес: +-
Сообщений: 1,807
|
Цитата:
это как интерестно? ![]() вот вариант, но метод f2 унаследовать всеровно не получится SubClass.prototype.constructor.prototype.__proto__ = SuperClass.prototype.constructor.prototype; можно только клонировать функцию, как я предложил в моём первом ответе:
__________________
flash it Последний раз редактировалось Techmaker; 31.10.2003 в 18:54. |
![]() |
Часовой пояс GMT +4, время: 22:10. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|