![]() |
|
||||||||||
|
|
|
|||||
|
Извиняюсь за неправильное название топика, прошу модераторов поправить название (излишки ночного кодописания)
Добрый день (вечер). Вот появился такой вот вопрос: Возможно ли изменить значение свойства в myObj внутри инструкции with, имея название свойства - в виде строки и не обращаясь к myObj напрямую? Последний раз редактировалось wvxvw; 10.03.2010 в 14:44. Причина: Нужно поспать как следует! |
|
|||||
|
|
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
я бы не советовал использовать with - абсолютно не улучшает читаемость кода, а наоборот ухудшает.
и вообще лучше не использовать Object а создать свой кастомный класс данных package { public class CustomObject { public var one:String; public var two:Boolean; public var n:Number; public function CustomObject($one:String,$two:Boolean,$n:Number) { one = $one; two = $two; n = $n; } } } ........ var myObj:CustomObject= new CustomObject("text",false,Math.random()); var value: Number=30; myObj.n = value;
__________________
Отряд Котовскага Последний раз редактировалось Котяра; 10.03.2010 в 09:38. |
|
|||||
|
Дело в том что имена свойств в myObj меняются, в нем может быть "что угодно"
рассчитывал получить доступ к методу таким образом: |
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
Цитата:
__________________
Отряд Котовскага |
|
|||||
|
Можно использовать flash.utils.describeType(myObj) - получите XML с полным описанием всех свойств, методов, акцессоров и тд. Потом пройтись по этому XML циклом for each и найти нужное свойство. Все =)
__________________
...вселенская грусть |
|
|||||
|
2 Silin: Великолепно! То что доктор прописал!
2 All: Смысл задачи именно в ее сути! Способов реализации данной задачи - достаточно Интересовала реализация именно при работе с инструкцией with(). Вот и решение (by Silin): var myObj:Object={PropOne:"text", PropTwo:false, PropN: Math.random()}; var somePropName: String="PropN"; var Value: Number=30; with(myObj) { valueOf()[somePropName] = Value; } ![]() |
|
|||||
|
Modus ponens
|
Нет ничего, что делает with, что нельзя було бы сделать лучше без него - это просто атавизм и непонятка в спецификации языка, не более.
__________________
Hell is the possibility of sanity |
![]() |
![]() |
Часовой пояс GMT +4, время: 07:38. |
|
|
« Предыдущая тема | Следующая тема » |
|
|