Просмотр полной версии : ООП: (зажмурившись) ммм.. ИнХерИтАнс..
iLoveYou
27.10.2003, 18:12
всей душой и телом приветствую любителей глубокого флеш-программирования на этом скромном форуме. вашему вниманию предлагается небольшая задача. она совсем простая: нужно всего лишь ознакомиться со следующим кодом и не задумываясь ответить на пару пустячковых вопросов. итак, код в студию:
function SuperClass() {
trace("SuperClass constructor called");
this.__proto__.f1 = function() {
trace("f1 called");
};
this.f2 = function() {
trace("f2 called");
};
}
function SubClass() {
trace("SubClass constructor called");
}
SuperClass.prototype.__proto__.f3 = function() {
trace("f3 called");
};
SubClass.prototype.__constructor__ = SuperClass;
obj = new SuperClass();
trace("---------------");
obj.f1();
obj.f2();
obj.f3();
trace("******************************");
obj2=new SubClass();
trace("---------------");
obj2.f1();
obj2.f2();
obj2.f3();
Ну а теперь вопросы:
1) какую строчку (всего одну) нужно добавить в этот незатейливый код, чтобы методы f1() и f2() могли быть вызваны и для объектов класса SubClass?
2) совсем просто: в чем различия реализации методов f1(), f2(), f3()?
3) черт, только сейчас заметил: если удалить SubClass.prototype.__constructor__ = SuperClass;
метод f3() все равно вызывается; к чему бы это?
Первому ответившему на все вопросы верно будет присвоено звание глубокого флеш-программиста и памятный значок с дарственной надписью "Я люблю ПротивныеТипы".
ЗЫ пользователи ||||||||||, lexass, Baltika, DeliMiter, Nox Noctis к участию не допускаются.
ЗЗЫ просьба не воспринимать слишком серьезно -- все равно призов на всех не хватит.
2K WebStudio
27.10.2003, 21:58
пункт 1:
ты хочешь, чтобы в outpute было вот это?
SuperClass constructor called
---------------
f1 called
f2 called
f3 called
******************************
SubClass constructor called
---------------
f1 called
f2 called
f3 called
Так?
iLoveYou
27.10.2003, 22:16
ты б мысль не заканчивал на полуслове. и еще: раз уж взялся за задачку, то, пожалуйста, с объяснениями и поподробней, да.
sergwizard
27.10.2003, 23:04
1. Я бы написал все это так:
function SuperClass() {
trace("SuperClass constructor called");
this.__proto__.f1 = function() {
trace("f1 called");
};
this.f2 = function() {
trace("f2 called");
};
}
function SubClass() {
trace("SubClass constructor called");
}
SubClass.prototype.__proto__.f3 = function() {
trace("f3 called");
};
SubClass.prototype = new SuperClass();
obj = new SuperClass();
trace("---------------");
obj.f1();
obj.f2();
obj.f3();
trace("******************************");
obj2=new SubClass();
trace("---------------");
obj2.f1();
obj2.f2();
obj2.f3();
2. реализация методов f1(), f2(), f3() видна из записи.
3. Эта строчка нихрена не значит.
2K WebStudio
27.10.2003, 23:13
Знаешь что чувак!
Такой попсы я давно не видел!!!
Вот те скрипт:
function SuperClass() {
trace("SuperClass constructor called");
}
SuperClass.prototype.__proto__.f1 = function() {
trace("f1 called");
};
SuperClass.prototype.f2 = function() {
trace("f2 called");
};
function SubClass() {
trace("SubClass constructor called");
}
SuperClass.prototype.f3 = function() {
trace("f3 called");
};
SubClass.prototype = SuperClass.prototype;
obj = new SuperClass();
trace("---------------");
obj.f1();
obj.f2();
obj.f3();
trace("******************************");
obj2 = new SubClass();
trace("---------------");
obj2.f1();
obj2.f2();
obj2.f3();
А вот те ссылка (http://www.flash-ripper.com/articles/flash/2002_08_29_asstandard.htm) на самый простой справочник на эту тему!!!
iLoveYou
27.10.2003, 23:17
SubClass.prototype = new SuperClass();
гы заменять строчки нельзя ;) нужно только добавить.
2. реализация методов f1(), f2(), f3() видна из записи.
ну да, видна, но тут нужны пояснения :)
3. Эта строчка нихрена не значит.
емкая, конечно, фраза. но ответа на поставленный вопрос она не дает.
и вообще, Визард, почему я тебя не включил в список досрочно дисквалифицированных?
2K WebStudio
27.10.2003, 23:21
Теперь ответь мне!
Книжек надо больше читать!
Фигня какая-то, а не скрипт!
Посмотри на ссылке создание объектов!
iLoveYou
27.10.2003, 23:50
2K WebStudio
ага, вот ты-то мне и нужен.
ты не ответил ни на один из поставленных вопросов и, более того, породил у меня новые.
1) какую смысловую нагрузку несет следующая запись:
SubClass.prototype = SuperClass.prototype;
2) почему ты определяешь методы так по-разному:
SuperClass.prototype.__proto__.f1 = function() {
trace("f1 called");
}; и
SuperClass.prototype.f2 = function() {
trace("f2 called");
};
ЗЫ книжками отмазываться не нУно.
2K WebStudio
27.10.2003, 23:55
Делаю это отдельно т.к. так меньше оперативки жрёт!
Кажется, там это написано!!!
А без этой строки, естественно ничего не пашет!
iLoveYou
28.10.2003, 00:05
вот я сейчас пытаюсь для себя решить: ты намеренно флудишь или действительно не понимаешь, вообще о чем идет речь.
либо внимательно прочти первое сообщение и попытайся ответить на поставленные вопросы, либо не засоряй эфир.
+ дополнительные вопросы повисли:
1) какую смысловую нагрузку несет следующая запись:
SubClass.prototype = SuperClass.prototype;
2) почему ты определяешь методы так по-разному:
--------------------------------------------------------------------------------
SuperClass.prototype.__proto__.f1 = function() {
trace("f1 called");
};
--------------------------------------------------------------------------------
и
--------------------------------------------------------------------------------
SuperClass.prototype.f2 = function() {
trace("f2 called");
};
--------------------------------------------------------------------------------
посмотрим, подумаем. Я из клубы - дома сейчас модема нет. Скопирую подумаю. Сейчас...
Пушистик
28.10.2003, 16:25
Sergey"iLoveYou", эт действительно трабла? ил ты решил попонтоватся и устроить экзамен тут всем по ООП?...
ЗЫ: оч.смешно со стороны...
iLoveYou
28.10.2003, 18:01
Оригинал написал(а) Пушистик
Sergey"iLoveYou", эт действительно трабла? ил ты решил попонтоватся и устроить экзамен тут всем по ООП?...
ЗЫ: оч.смешно со стороны...
ты, по всей видимости, очень невнимательно читал мой первый пост в этом треде. это не трабла, это не понт, это не экзамен, это не шутка. это форма обучения -- я бы так сказал. если хочешь принять участие -- ю а велкам; в противном случае, если тебе это неинтересно или слабО, не флудь здесь понапрасну, ограничься одним неосознанным высказыванием.
Пушистик
28.10.2003, 18:49
Sergey"iLoveYou", у тебя Очень завышенная самооценка! ;) ты пытешься строить из себя некого "флэш-философа", думая что поразишь всех своими ответами, юзая при этом всякие клише...
думаешь что сможешь поставить всех на место и никто ничего не сможет тебе возразить...!
ЗЫ: Будешь говорить такие фразы целый год - можешь за умного сойти... ;)
iLoveYou
28.10.2003, 19:14
Оригинал написал(а) Пушистик
Sergey"iLoveYou", у тебя Очень завышенная самооценка! ;) ты пытешься строить из себя некого "флэш-философа", думая что поразишь всех своими ответами, юзая при этом всякие клише...
думаешь что сможешь поставить всех на место и никто ничего не сможет тебе возразить...!
ЗЫ: Будешь говорить такие фразы целый год - можешь за умного сойти...
1) да, у меня гипертрофированная самооценка
2) да, я пытаюсь даже к флешу подойти отчасти по-философски
3) да, я пытаюсь поразить всех умными высказываниями
4) да, я юзаю клише
5) да, я ставлю ламерков, подобных тебе, на место, и они не могут ничего конструктивно возразить
6) если я целый год буду объяснять людям, что лучше высказываться по предложенной теме, а не обсуждать меня-любимого, то я скорее сойду с ума, чем буду казаться умным шибко
7) подобных высказываний я выслушал за жизнь очень много -- судьба такая.
Пушистик
28.10.2003, 19:38
Sergey"iLoveYou", да ладно...не нервничай так чувак:)не обижайся, если чё... :)
iLoveYou
28.10.2003, 19:45
все перетерли?
может, теперь, по теме чего-нибудь? а то медаль скоро гнить начнет ;)
SubClass.prototype= new SuperClass(); :D
Об чём Вы тут спорите?
Я спросил как то рабочий шрифт, так мне кроме Ариэля ничего больше не предложили. :D
Лично я считаю что Sergey мало что понимает в глубоком flash программировании.
Пушистик
29.10.2003, 14:14
Оригинал написал(а) nuran
Лично я считаю что Sergey мало что понимает в глубоком flash программировании.
nuran, как ты мог даже подумать такое ? :D :D :D :D
Пушистик
29.10.2003, 14:19
Оригинал написал(а) Sergey"iLoveYou"
все перетерли?
может, теперь, по теме чего-нибудь? а то медаль скоро гнить начнет ;)
а ты её опусти в стакан с сахаром...!
пацаны, давайте!получите эту "медаль" и можете бегать по улице и кричать: "АААААААААааааааа.....мне сам Sergey"iLoveYou" медаль вручил!!!!аааааааааа....я терь самый крутой!!!!ааааааа....!!!" Макромедия как раз ищет такие работников... :D
Оригинал написал(а) Пушистик
nuran, как ты мог даже подумать такое ? :D :D :D :D
А я вижу, как он комментирует мои посты, при чём постоянно, не понимая смысла и сложности исходников. Он постоянно ссылается на других, но при этом сам (по крайней мере я не видел) ничего средне-сложного не сделал. Он говорит, что текстурирование лёгкая вещь, хотя сам даже не знает, что это такое. Он хвастунишка - вот кто он. Товарищь Сергей.
iLoveYou
29.10.2003, 15:41
SubClass.prototype= new SuperClass();
Штрек, в данном примере как раз показан некий отход от предложенного макромедией варианта осуществления наследования классов в 6-ке. Ты, наверное, заметил строчку
SubClass.prototype.__constructor__ = SuperClass;
вот в ней-то вся штука.
спасибо за то, что высказался по теме.
Techmaker
29.10.2003, 18:16
Сразу говорю, я только что со школы, так что думать сильно не могу :)
1.
function SuperClass() {
trace("SuperClass constructor called");
this.__proto__.f1 = function() {
trace("f1 called");
};
this.f2 = function() {
trace("f2 called");
};
}
function SubClass() {
trace("SubClass constructor called");
}
SuperClass.prototype.__proto__.f3 = function() {
trace("f3 called");
};
SubClass.prototype.__constructor__ = SuperClass;
SubClass=SuperClass;
obj = new SuperClass();
trace("---------------");
obj.f1();
obj.f2();
obj.f3();
trace("******************************");
obj2=new SubClass();
trace("---------------");
obj2.f1();
obj2.f2();
obj2.f3();
2.
f1 - метод способен добавлятся к другим классам таким образом: SubClass.prototype.__proto__=SuperClass.prototype
f2 - просто метод который спецефически принадлежит только этому "SuperClass'у" :) , не способен добавлятся к другим классам :)
f3 - метод добавляется, и может быть запущен, всеми созданными классами, всё обосновывается одним лишним "__proto__" ;)
3.
SubClass.prototype.__constructor__ = SuperClass;
к чему бы это? :rolleyes: хмм... :) наверное к тому что ты прицепил это __proto__
вот сюда:
Оригинал написал(а) Sergey"iLoveYou"
SuperClass.prototype.__proto__.f3 = function() {
trace("f3 called");
};
iLoveYou
29.10.2003, 18:47
Techmaker, ты сейчас очень поднялся в моих глазах, говорю без всякой иронии. :) хотя с заданием намудрил ;)
1. SubClass=SuperClass;
и где же тута инхеританс? смысл-то задания не в том, чтоб получить в аутпуте
f1 called
f2 called
f3 called
а разобраться в тонкостях механизма наследования :cool:
2. f1 - вот тут я тебя не совсем понял.
f2 - по сути близко, но формулировка немного.. того ;)
f3 - то же, что и с f2.
3. неа.
спасибо, Techmaker.
Techmaker
29.10.2003, 19:12
интерестно почему же 3 не правильно... :rolleyes:
llllllllll
29.10.2003, 19:25
_root.f3(); ;)
iLoveYou
29.10.2003, 19:34
Оригинал написал(а) Techmaker
интерестно почему же 3 не правильно... :rolleyes:
бррр! по сути верно, но механизм объяснишь?
ладно, сам отвечу на третий вопрос.
ASSetPropFlags(SuperClass.prototype.__proto__, null, 0, 1);
for (i in SuperClass.prototype.__proto__) {
trace(i);
}
trace(SuperClass.prototype.__proto__ == Object.prototype);
ЗЫ
2 llllllllll, игра со зрителями еще не началась ;)
Techmaker
29.10.2003, 19:37
это что подсказка? :)
если да, то я имел ввиду, что если убрать вот это __proto__ вот здесь:
SuperClass.prototype.f3 = function() {
trace("f3 called");
};
то будет всё как надо :)
iLoveYou
29.10.2003, 19:46
Оригинал написал(а) Techmaker
это что подсказка? :)
SuperClass.prototype.f3 = function() {
trace("f3 called");
};
то будет всё как надо :)
это понятно, но при существующем коде, т.е. с "потерявшейся" строчкой методы f1,f2,f3 не получится вызвать :)
f3 - изначально обманка, поскольку
trace(SuperClass.prototype.__proto__ == Object.prototype); даст true.
Techmaker
29.10.2003, 20:03
я что-то непонямаю :)
а вообще по-моему вот самй лучший вариант :)
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();
iLoveYou
29.10.2003, 20:33
Алексей, приятно разговаривать с человеком, который, по всей видимости, читал Дебройля :)
SubClass.prototype.__proto__=SuperClass.prototype -- объяснишь, как это работает?
Как это работает - Дебройль прекрасно и объяснил :
"Хитрость в том, что нужно сделать два класса и направить __proto__ прототипа первого на прототип другого (вместо Object.prototype). Таким образом вы получите "младший" класс, подкласс (SubClass) и "старший" класс, суперкласс (SuperClass). Делается это простой операцией:
SubClass.prototype.__proto__ = SuperClass.prototype;"
Нам же что бы найти F2 надо порыться не в прототипе
SuperClass, а в его конструкторе. Ну так и поройтесь,
чего притихли, где продолжение банкета?
iLoveYou
30.10.2003, 18:47
Оригинал написал(а) Штрек
Как это работает - Дебройль прекрасно и объяснил :
"Хитрость в том, что нужно сделать два класса и направить __proto__ прототипа первого на прототип другого (вместо Object.prototype). Таким образом вы получите "младший" класс, подкласс (SubClass) и "старший" класс, суперкласс (SuperClass). Делается это простой операцией:
SubClass.prototype.__proto__ = SuperClass.prototype;"
ГЫ как там в анекдоте? "если бы это сказал ты, мне было бы приятней".
Нам же что бы найти F2 надо порыться не в прототипе
SuperClass, а в его конструкторе.
ага, в этой фразе есть смысл. я вижу, что мы приближаемся к ответу на первый вопрос. ура!
Оригинал написал(а) Sergey"iLoveYou"
Techmaker, ты сейчас очень поднялся в моих глазах, говорю без всякой иронии. :)
:) Молодец Лёха. Как житуха? :):):) Учёба напрягает...
Ладно, раз Нуран сдался, мне то чего тянуться.
Подтягивай Серёга тяжелую артилерию.
Я так понял, ты котегор. не хочешь засовывать
метод 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__ :mad:
Ставлю
trace(SuperClass.prototype.__constructor__);
выводится undefined
Ставлю
trace(SuperClass.prototype.constructor);
выводится всё путём - [type Function]
В общем бардак.
Мож у нас на Руси Дебройли и есть, но тока куда то попрятались. Дембинского очень уважаю, так у него последнее обновление с год назад. Здесь на Флэшере уроков по ООП и близко нету.
Потрошитель уделил этому делу 10 строчек в глосарии.
Разбирайтесь мол сами.
Мож ничего не подсказывать, только чиркани, чем отличается
__constructor__ от constructor
iLoveYou
31.10.2003, 17:49
Ладно, раз Нуран сдался, мне то чего тянуться.
а вот это неправильная позиция :rolleyes:
нуран не сдался, он даже не пытался.
Я так понял, ты котегор
кот Егор?
Стыдно признаться не знаю что есть
__constructor__
Мож ничего не подсказывать, только чиркани, чем отличается
__constructor__ от constructor
абсолютно ничего стыдного. :)
__constructor__ -- штука как бы недокументированная, но работает, как видишь. чтоб не нагружать тебя словесным бредом:
a=obj2.__constructor__; --> Ctrl+Alt+V ;)
мысль продолжим?
Techmaker
31.10.2003, 18:36
Оригинал написал(а) Штрек
Врубится бы чего ты написал
SubClass.prototype.__constructor__ = SuperClass;
Стыдно признаться не знаю что есть
__constructor__
Ставлю
trace(SuperClass.prototype.__constructor__);
выводится undefined
Ставлю
SubClass.prototype.bla_bla = SuperClass;
trace(SubClass.prototype.bla_bla)
:D
iLoveYou
31.10.2003, 18:43
ну-ка не хулигань тут! :) не видишь, конструктивная беседа завязалась? :cool:
Techmaker
31.10.2003, 18:47
Оригинал написал(а) Sergey"iLoveYou"
Нам же что бы найти F2 надо порыться не в прототипе
SuperClass, а в его конструкторе.
ага, в этой фразе есть смысл. я вижу, что мы приближаемся к ответу на первый вопрос. ура!
в конструкторе говорите? :) это как интерестно? :)
вот вариант, но метод f2 унаследовать всеровно не получится :)
SubClass.prototype.constructor.prototype.__proto__ = SuperClass.prototype.constructor.prototype;
мой ответ - решений нет :D можно только клонировать функцию, как я предложил в моём первом ответе:
Оригинал написал(а) Techmaker
...
SubClass=SuperClass;
...
iLoveYou
31.10.2003, 18:59
в конструкторе говорите? :) это как интерестно? :)
вот вариант, но метод f2 унаследовать всеровно не получится :)
да не в конструкторе, а через его вызов. блин, уже все сам рассказал ;)
SubClass.prototype.constructor.prototype.__proto__ = SuperClass.prototype.constructor.prototype;
вот к чему, ёпть, приводят занятия глубоким флеш-программированием :D
мой ответ - решений нет :D можно только клонировать функцию, как я предложил в моём первом ответе:
SubClass=SuperClass;
*плача* а как же ИнХерИтАнс???
Techmaker
31.10.2003, 18:59
Оригинал написал(а) Sergey"iLoveYou"
SubClass.prototype.__constructor__ = SuperClass;
это просто обманка для флэшеров :)
ну или с технической точки зрения "SubClass.prototype.__constructor__" является копией класса/функции "superClass" , и по-этому ни каким образом не затрагивает вызов метода "f3" у класса/функции "subClass".
Вот так :) ;)
iLoveYou
31.10.2003, 19:08
Оригинал написал(а) Techmaker
это просто обманка для флэшеров :)
ну или с технической точки зрения "SubClass.prototype.__constructor__" является копией класса/функции "superClass" , и по-этому ни каким образом не затрагивает вызов метода "f3" у класса/функции "subClass".
Вот так :) ;)
топик внимательно читал? на третий вопрос мы уже месяц назад ответили. :cool:
trace(SuperClass.prototype.__proto__ == Object.prototype);
так какой там копией является SubClass.prototype.__constructor__?
Techmaker
31.10.2003, 19:13
этого ты хотел? :)
SubClass=SuperClass.prototype.constructor;
Techmaker
31.10.2003, 19:18
Оригинал написал(а) Sergey"iLoveYou"
так какой там копией является SubClass.prototype.__constructor__? trace(SubClass.prototype.__constructor__ == SuperClass()); :D
Оригинал написал(а) Techmaker
этого ты хотел? :)
SubClass=SuperClass.prototype.constructor;
Да писал я уже это.
Это тож самое, что и
SubClass=SuperClass
"кот Егор?" - да описался я /или описался/ :D -
катяра Егор :D
iLoveYou
31.10.2003, 21:26
2 Techmaker не нужно гАдать -- нужно дУмать. и еще: ООПе -- это не поле для шуток.
2 Штрек c __constructor__ устранил непонятки? если нет, то тебе сюда:
http://www.constructor.ru
http://www.constructor.ru/
- ты там что мастером? ;)
Я по серьёзному хотел разобраться.
Меня из всех этих заморочек с наследованием интересует -
как, мать ё, из кнопки увидеть мувик.
Кладёшь мувик во все кадры кнопки и хоть кнопка
инстанс имеет - мувика не видать. Мож через классы замутить.
__constructor__ -- штука как бы недокументированная, но работает, как видишь. чтоб не нагружать тебя словесным бредом:
a=obj2.__constructor__; --> Ctrl+Alt+V
А можно чуть словесного бреду?
Типа - constructor - блок кода, необходимый для инициализации объектов класса.
__constructor__ - ??????????????
старина смерть
01.11.2003, 07:04
Оригинал написал(а) Sergey"iLoveYou"
а вот это неправильная позиция :rolleyes:
нуран не сдался, он даже не пытался.
Ты прав. У меня сейчас с учёбой проблемы. Я даже не смотрел твой код. Категорически времени нет.
iLoveYou
01.11.2003, 22:24
Оригинал написал(а) Штрек
А можно чуть словесного бреду?
Типа - constructor - блок кода, необходимый для инициализации объектов класса.
__constructor__ - ??????????????
дело в том, что при создании объекта определенного класса ему (объекту) присваиваются различные свойства, среди которых стоит особо выделить __proto__ и __constructor__. __proto__ есть ссылка на свойство prototype конструктора данного класса. __constructor__ есть ссылка на саму функцию конструктора. таким образом, если мы пишем SubClass.prototype.__constructor__=SuperClass, это означает, что каждый объект класса SubClass унаследует свойство __constructor__, равным функции конструктора класса SuperClass, и при создании объекта класса SubClass "по ссылке" (ах, какие сладкие слова!) должен быть вызван конструктор класса SuperClass, но так как макромедия не думала, что мы так будем извращаться, то вызов этот приходится организовывать "принудительно", в чем и есть фактически суть первого задания ;)
в подтверждение свойства __constructor__:
a=obj2.__constructor__; --> Ctrl+Alt+V // Variable _level0.a = [function 'SubClass']
ЗЫ дорогие друзья, в другом топе мне было поставлено в вину, что здесь я говорю о наследовании так, а на практике реализую по-другому. не стоит так серьезно воспринимать это задание, так как его цель --- обучение, а не практическое использование предложенного кода.
Давай ещё чего нить новенького.
Ждём!
Какой нить прототипчик, которого на Лаер51 нету. ;)
iLoveYou
02.11.2003, 00:51
Оригинал написал(а) Штрек
Давай ещё чего нить новенького.
Ждём!
Какой нить прототипчик, которого на Лаер51 нету. ;)
не понЯл. :rolleyes:
а задание доделать?
ЗЫ все понятно теперь?
Давай на таком варианте остановимся :D
function SubClass() {
trace("SubClass constructor called");
this.ttt=SuperClass;
this.ttt();
delete this.ttt;
}
Я понимаю, что конструктор SuperClass
надо вызывать из function SubClass(),
но как одной строчкой всё организовать
в голову не лезет.
Мож завтра просветлеет.
iLoveYou
02.11.2003, 11:22
Оригинал написал(а) Штрек
Я понимаю, что конструктор SuperClass
надо вызывать из function SubClass(),
но как одной строчкой всё организовать
в голову не лезет.
Мож завтра просветлеет.
молодец. RTFM super
Techmaker
02.11.2003, 14:38
function SuperClass() {
trace("SuperClass constructor called");
this.__proto__.f1 = function() {
trace("f1 called");
};
this.f2 = function() {
trace("f2 called");
};
}
function SubClass() {
trace("SubClass constructor called");
}
SuperClass.prototype.__proto__.f3 = function() {
trace("f3 called");
};
SubClass.prototype.__constructor__ = SuperClass;
obj = new SuperClass();
trace("---------------");
obj.f1();
obj.f2();
obj.f3();
trace("******************************");
delete SubClass.prototype.__constructor__();
obj2=new SubClass();
trace("---------------");
obj2.f1();
obj2.f2();
obj2.f3();
:)
старина смерть
02.11.2003, 15:01
Всем привет. Все работаете... :)
Лёха новая аватора? :)
А мне просто влом. Я редизайн своего сайта уже два дня делаю. Со мной такого ни когда не было. Самое большее - часов 10. :)
старина смерть
02.11.2003, 15:07
http://www.layer51.com
Оригинал написал(а) старина смерть
http://www.layer51.com
Ссыла известная.
Чего то я тебя там не встречал.
Мож ты маскируешься? :D
старина смерть
02.11.2003, 15:38
Non товарсч. Я сейчас на ultrashock переезжаю:) Начинаю:)
Оригинал написал(а) Techmaker
[CODE]}
delete SubClass.prototype.__constructor__();
CODE]
Тоже что и
SubClass.prototype.__constructor__();
старина смерть
02.11.2003, 16:43
Сергей зацени
iLoveYou
02.11.2003, 16:54
Оригинал написал(а) старина смерть
Всем привет. Все работаете... :)
Лёха новая аватора? :)
А мне просто влом. Я редизайн своего сайта уже два дня делаю. Со мной такого ни когда не было. Самое большее - часов 10. :)
извините за оффтоп? в этом топе все, сказанное тобой, есть оффтоп. когда нечего сказать по теме, лучше не флудить. с этой точки зрения Пушистик и 2кВебСтудио поступили более обдуманно -- вовремя покинули сцену. надеюсь, ты меня понял.
Techmaker, не смеши меня. :) хотя смеяться полезно -- уже знаю.
RTFM super
жаль, что вы, друзья, не обратили внимание на эту подсказку.
Techmaker
02.11.2003, 23:01
Оригинал написал(а) Штрек
Тоже что и
SubClass.prototype.__constructor__();
ага, точна :)
Techmaker
02.11.2003, 23:23
а задача под какой флэш? :)
iLoveYou
02.11.2003, 23:31
Оригинал написал(а) Techmaker
а задача под какой флэш? :)
лучше б что умное спросил :mad:
можешь попробовать в семерке. :rolleyes:
Всё! Больше от меня ничего не дождёшься
function SubClass() {
trace("SubClass constructor called");
this.__proto__.__constructor__();
}
Techmaker
03.11.2003, 16:34
2Sergey"iLoveYou"
просто спросил
2Штрек
всеровно не так как хочет Sergey"iLoveYou" :)
Что значит не то?
Если это не то - надо переформулировать первый вопрос.
iLoveYou
03.11.2003, 17:06
на этой прискорбной минуте мы заканчиваем наше шоу.
я весьма разочарован тем, что эта тема никому не интересна.
Штрек & Techmaker, спасибо за посильное участие.
медаль? хрен с ней. отдайте нурану и пушистику, а еще 2квебстудио тоже заслужил свою порцию пончиков.
кому нужно -- в аттаче решение с пояснением.
кланяюсь.
ЗЫ f3 я выкинул за ненадобностью, дабы не загружать мозГ ваш.
Techmaker
03.11.2003, 17:12
надеюсь ты получше раскажешь нам о Super()?
iLoveYou
03.11.2003, 17:43
Оригинал написал(а) Techmaker
надеюсь ты получше раскажешь нам о Super()?
третий раз повторяю для слабослышащих:
RTFM super
:)
Techmaker
03.11.2003, 18:37
всеровно я такие извраты использовать небуду :)
iLoveYou
03.11.2003, 18:53
Оригинал написал(а) Techmaker
всеровно я такие извраты использовать небуду :)
знать и использовать -- разные вещи.
Techmaker
03.11.2003, 19:08
знания всегда полезны :)
Я ХЕЛП шестёрошный изучал по мере надобности
и на оператор super() наткнулся только теперь/с подачи
Sergey"iLoveYou"/. Век живи - век учись. ;)
Nox Noctis
17.11.2003, 12:56
вот вам :))
a = function () { };
b = new a();
b.__proto__ = b;
b.c = new a();
Оригинал написал(а) Sergey"iLoveYou"
пользователи ||||||||||, lexass, Baltika, DeliMiter, Nox Noctis к участию не допускаются.кажется месяц назад нас опять опустили :)
ччерт, а я забыл где топор войны закопал...
greyshaman
17.11.2003, 23:30
эээ... господам с иконостаса велено молчать
iLoveYou
17.11.2003, 23:46
Оригинал написал(а) Nox Noctis
кажется месяц назад нас опять опустили :)
более того, справка соответствующая имеется =)))
Оригинал написал(а) greyshaman
эээ... господам с иконостаса велено молчать
теперь уже можно -- призы-то все раздали ;)
Nox Noctis
18.11.2003, 00:58
Оригинал написал(а) greyshaman
эээ... господам с иконостаса велено молчать а вы не размахивайте так кадилом, не размахивайте :)))
Ну вот почти все умники собрались -
напишите чего нить по AS2 на бис ;)
старина смерть
18.11.2003, 06:49
Я вам щас станцую.
iLoveYou
18.11.2003, 13:06
Оригинал написал(а) старина смерть
Я вам щас станцую.
а кто ж тебя пустит в Большой Театр?
старина смерть
19.11.2003, 16:24
А ты уверен, что он "Grand opera"?
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.