Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Динамическое создание переменных в экземпляре класса (http://www.flasher.ru/forum/showthread.php?t=122160)

Mnilionic 03.03.2009 22:29

Цитата:

Еще бы можно было незная имен переменных получать их, для тестов бы пригодилось.
Код AS1/AS2:

for( prop in obj){// цыкл по всем свойствам объекта}


qazwsx 03.03.2009 22:40

Попробуй это с классом. Такой метод подойдет только для обьекта, или для класса если поля были заданы ему как обьекту. Типа Class['prop'] = value;. Тоже самое с пакетами, когда в пакете допустим 3 класса ttt.a, ttt.b, ttt.c. А мы сделаем import ttt.*. Попробуем сделать трейс:
Код AS1/AS2:

for(var class:String in ttt)trace(class+'='+ttt[class]);

мы ничего не получем, а если же будет обрашение перед этим циклом к классам из пакета:
Код AS1/AS2:

trace(ttt.a+', '+ttt.b);

то все выйдет.

wvxvw 03.03.2009 22:45

Цитата:

Сообщение от qazwsx (Сообщение 802803)
А если это будет getter. А в нем будет проверка равенства __proto__ и arguments.caller.__proto__? :). Хотя конечно метод можно будет вызвать. Но нельзя будет просто получить его значение. Да и в принципе никому это нинадо. Вот в питоне например тоже нету в принципе приватных переменных и ничего. Еще бы можно было незная имен переменных получать их, для тестов бы пригодилось.

Ну если прям так припрет - сделаю делегат специально для этого геттера, и все равно вызову :)
Приватные свойства нужны для удобства, а делать столько усилий ради того, чтобы их только создать - уже само по себе вызывает улыбку.

qazwsx 03.03.2009 22:52

Ну они изначально были как условность, а строая видимость приватный/публичный нужна лиш в популярных языках. Т.к многие будут путатся нарушать инкапсуляцию и тд... Естественно нормальный человек просто так не полезет к методу, если он в принципе должен быть приватным.


Часовой пояс GMT +4, время: 01:21.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.