- 1
- 2
- 3
- 4
override public function toString():String
{
return Object(container).toString() + "." + super.toString();
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−184.5
override public function toString():String
{
return Object(container).toString() + "." + super.toString();
}
Еще одно украшение Флексового фреймворка: mx.core::Repeater.
Для тех, кто не в курсе: toString() вызываетйса автоматически когда мы пытаемся вывести информацию об объекте в консоль. (Т.е. жизненно необходим для тестирования). Свойство container у репитера радко, но может буть null, но изза того, что флексовые разработчики не категорически никогда не кастуют ничего, то это должно было бы выкинуть исключение, но, конвертация используемая в примере (вместо каста) в силу особенностей языка вместо того чтобы просто умереть с исключением создаст новый динамический объект, врезультате получим что-то типа:
"[Object object].имяКомпонента".
т.е. на самом деле код должен был выглядеть примерно так:
return (this.container ? this.container.toString() + "." : "") + super.toString();
(Прошу прощения - куча ошибок, надо больше спать...)
Настолько я помню, null объектом не является во флеше, прога выпадет.
Ну в общем, это не совсем прям говнокод. Скорее баг, который надо запостить в соответстующие органы =)
дока - http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/Object.html#toString%28%29