|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Разница между "obj['s']" = и "obj.s ="
Есть ли разница в том, как указывать свойства объектам (динамически).
Так или так А так же есть ли разница в том как инициализировать новую переменную типа Object: так - var o:Object = new Object() , или так - var o:Object = {}; ? |
|
|||||
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Цитата:
Цитата:
|
|
|||||
Регистрация: Sep 2010
Сообщений: 16
|
Привет!
var o:Object = new Object() идентично var o:Object = {}. Скорость создания - одинаковая. worker["age"] = 15 идентично worker.age = 15. Скорость доступа - одинаковая. Только есть отличие: при помощи квадратных скобок можна формировать свойство на "лету". Например: worker["age"+8] = 15, что эквивалентно worker.age8 = 15. Но если написать: worker.age+8 = 15 - будет ошибка |
|
|||||
Регистрация: Sep 2010
Сообщений: 16
|
Цитата:
Добавлено через 2 минуты import flash.utils.getTimer; var time:uint=getTimer(); var obj:Object={}; trace(getTimer()-time) //0 |
|
|||||
Спасибо за ответы.
serogah, привет) worker["age"+8] = 15, что эквивалентно worker.age8 = 15. Вот это очень интересная вещь) Не знал)Часто необходимо бывает динамически создавать объекты(неопределенное количество), и в таком случае для доступа к ним приходится пихать их в коллекцию, а оттуда их уже по индексу выдергивать. А тут, грубо говоря, можно будет динамически каждому объекту раздавать id: . А потом обращаться worker.age1, worker.age2 и тд |
|
|||||
private function onTimer():void { var num:uint = 1000000; var time:int; var obj:Object; time = getTimer(); var i:int; for (i = 0; i < num; i++) { obj = { }; } trace(getTimer() - time); time = getTimer(); for (i = 0; i < num; i++) { obj = new Object(); } trace(getTimer() - time); var objProps:Object = { }; time = getTimer(); for (i = 0; i < num; i++) { objProps.myProp = 50; } trace(getTimer() - time); time = getTimer(); for (i = 0; i < num; i++) { objProps["myProp"] = 50; } trace(getTimer() - time); } Трейсы выдали: 1000, 621, 242, 362 соответственно.
__________________
тут я |
|
|||||
Регистрация: Sep 2010
Сообщений: 16
|
Цитата:
|
Часовой пояс GMT +4, время: 11:02. |
|
« Предыдущая тема | Следующая тема » |
|
|