![]() |
|
||||||||||
|
|||||
|
В одном из топиков велся разговор о работе с массивами, и я задался нижеследующим вопросом: Возможно ли как-нибудь изменить поведение стандартных классов (я так же не знаю, какой термин подходит для описания группы классов, которые Array, Number, BitmapData, то есть тех, которые присутствуют во флеше изначально), при этом не наследуясь от них и не оверрайдя соответствующие методы? Например, сделать чтоб Array в своем методе toString() возвращал не а, к примеру, для избегания путаницы с трейсом вложенных массивов? Вообще, где хранятся эти классы? в playerglobal.swc? Просвятите меня, пожалуйста.
__________________
cats are supreme beings Последний раз редактировалось iNils; 16.12.2012 в 01:58. |
|
|||||
|
Нельзя. Обязательно надо наследоваться и переназначать методы. Причем наследоваться можно только от тех классов, которые не являются финализированными. По-моему от Number нельзя унаследовать свой класс (хотя может я и не прав, точно не помню)
Цитата:
|
|
|||||
|
Великая печаль
__________________
cats are supreme beings |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
Из-за toString() городить такой огород?
![]() По моему проще сделать функцию (глобальную, с пустым пакетом, тогда даже импортировать не придется), которая бы перебирала массив, с учетом вложенности, формировала свою строку и скармивала ее трейсу. Скажем traceArray (). |
|
|||||
|
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
toString() у большинства стандарных классов прототипный, так что можно так:
__________________
Загружаем картинки, минуя ошибки безопасности |
|
|||||
|
Ну это да, поэтому все хорошие люди и наследуются; но тут я сомневаюсь, что toString где-то вот так используется, что его переопределение кому-нибудь навредит.
__________________
cats are supreme beings |
|
|||||
|
Modus ponens
|
Кстати, с Array.toString() был связан баг, когда при вызове toString() у вложенных массивов можно было натолкнуться на бесконечный цикл (если массив сам в себя вложен), и в таких ситуациях, естесственно, получалось переполнение стека. Так что будте бдительны, если будете сами реализовывать.
__________________
Hell is the possibility of sanity |
![]() |
![]() |
Часовой пояс GMT +4, время: 09:12. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|