|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
wanted
Регистрация: Sep 2002
Сообщений: 1,737
|
ООП: (зажмурившись) ммм.. ИнХерИтАнс..
всей душой и телом приветствую любителей глубокого флеш-программирования на этом скромном форуме. вашему вниманию предлагается небольшая задача. она совсем простая: нужно всего лишь ознакомиться со следующим кодом и не задумываясь ответить на пару пустячковых вопросов. итак, код в студию:
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) черт, только сейчас заметил: если удалить метод f3() все равно вызывается; к чему бы это? Первому ответившему на все вопросы верно будет присвоено звание глубокого флеш-программиста и памятный значок с дарственной надписью "Я люблю ПротивныеТипы". ЗЫ пользователи ||||||||||, lexass, Baltika, DeliMiter, Nox Noctis к участию не допускаются. ЗЗЫ просьба не воспринимать слишком серьезно -- все равно призов на всех не хватит. |
|
|||||
пункт 1:
ты хочешь, чтобы в outpute было вот это? SuperClass constructor called --------------- f1 called f2 called f3 called ****************************** SubClass constructor called --------------- f1 called f2 called f3 called Так? |
|
|||||
wanted
Регистрация: Sep 2002
Сообщений: 1,737
|
ты б мысль не заканчивал на полуслове. и еще: раз уж взялся за задачку, то, пожалуйста, с объяснениями и поподробней, да.
|
|
|||||
Регистрация: Jan 2002
Адрес: СПб-Denver-Лермонтов
Сообщений: 1,525
|
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(); 3. Эта строчка нихрена не значит.
__________________
Для того чтобы узнавать, есть два способа: - задавать вопросы и пытаться самому на них ответить. Второй способ более продуктивный. (S.Wizard) |
|
|||||
Знаешь что чувак!
Такой попсы я давно не видел!!! Вот те скрипт: 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(); А вот те ссылка на самый простой справочник на эту тему!!! |
|
|||||
wanted
Регистрация: Sep 2002
Сообщений: 1,737
|
Цитата:
Цитата:
Цитата:
и вообще, Визард, почему я тебя не включил в список досрочно дисквалифицированных? |
|
|||||
Теперь ответь мне!
Книжек надо больше читать! Фигня какая-то, а не скрипт! Посмотри на ссылке создание объектов! |
|
|||||
wanted
Регистрация: Sep 2002
Сообщений: 1,737
|
2K WebStudio
ага, вот ты-то мне и нужен. ты не ответил ни на один из поставленных вопросов и, более того, породил у меня новые. 1) какую смысловую нагрузку несет следующая запись: SubClass.prototype = SuperClass.prototype; 2) почему ты определяешь методы так по-разному: Цитата:
Цитата:
|
|
|||||
Делаю это отдельно т.к. так меньше оперативки жрёт!
Кажется, там это написано!!! А без этой строки, естественно ничего не пашет! |
|
|||||
wanted
Регистрация: Sep 2002
Сообщений: 1,737
|
вот я сейчас пытаюсь для себя решить: ты намеренно флудишь или действительно не понимаешь, вообще о чем идет речь.
либо внимательно прочти первое сообщение и попытайся ответить на поставленные вопросы, либо не засоряй эфир. + дополнительные вопросы повисли: 1) какую смысловую нагрузку несет следующая запись: SubClass.prototype = SuperClass.prototype; 2) почему ты определяешь методы так по-разному: -------------------------------------------------------------------------------- SuperClass.prototype.__proto__.f1 = function() { trace("f1 called"); }; -------------------------------------------------------------------------------- и -------------------------------------------------------------------------------- SuperClass.prototype.f2 = function() { trace("f2 called"); }; -------------------------------------------------------------------------------- |
Часовой пояс GMT +4, время: 17:45. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|