![]() |
Динамическое создание переменных в экземпляре класса
Подскажите, как динамически создавать переменные классах?
Допустим, хочу, чтобы цикл создал (_parts) штук public переменных с именами ("_part"+i) Код AS1/AS2:
|
Метод сет это тоже самое что = только древний. Класс нужно сделать динамическим тогда все будет работать.
|
Отлично, заработало, создаю в конструкторе, видны внутри класса. А как сделать их public?
И еще вопрос, разве можно как-то без set() создать переменную с неизвестным заранее именем? |
Вам наооборот нужно делать финты ушами, чтобы сделать ваши переменные private - используя ASSetPropFlags... и то это все равно будет условность... в АС2 нету приватных переменных.
|
В конструкторе:
Код AS1/AS2:
Код AS1/AS2:
Код:
конструктор: str |
Цитата:
Код AS1/AS2:
Даже более того: Код AS1/AS2:
|
О, спасибо, через this[] заработало!
|
Цитата:
Код AS1/AS2:
Цитата:
|
Финт - сложный фокус с игральными картами, чтобы его сделать нужно одновременно двумя руками поменять карты в колоде так, чтобы остальные этого не заметили, сделать такой фокус ушами не возможно.
"Финты ушами" - значит, что то, что вы будете пытаться сделать в принципе не возможно, и при этом со стороны выглядит как очень трудноосуществимая задача. Вы можете попытаться осуществить вашу задачу и через Object.addProperty() и через Object.watch() и через Object.__resolve(), но в конечном счете вы все равно прийдете к выводу, что содать содать свойство не видимое вне класса в АС2 не возможно. |
А если это будет getter. А в нем будет проверка равенства __proto__ и arguments.caller.__proto__? :). Хотя конечно метод можно будет вызвать. Но нельзя будет просто получить его значение. Да и в принципе никому это нинадо. Вот в питоне например тоже нету в принципе приватных переменных и ничего. Еще бы можно было незная имен переменных получать их, для тестов бы пригодилось.
|
| Часовой пояс GMT +4, время: 10:35. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.