Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   конструкция with() (http://www.flasher.ru/forum/showthread.php?t=166292)

Denis_Pryanikov 01.09.2011 12:43

конструкция with()
 
Скажите, какой код будет работать быстрее?
этот:
Код AS3:

with(tf) {
        background  = true;
        backgroundColor = 0x645439;
        border = true;
        borderColor = 0x000000;
        alpha = 0.8;                               
        selectable = false;
        wordWrap = true;       
 
        etc...                       
};

Или этот:
Код AS3:

        tf.background  = true;
        tf.backgroundColor = 0x645439;
        tf.border = true;
        tf.borderColor = 0x000000;
        tf.alpha = 0.8;                               
        tf.selectable = false;
        tf.wordWrap = true;       
 
        etc...

И вообще, если ли в чем-то выигрыш при использовании with() ?
(не только с текстовым полем, а вообще с объектами)

GBee 01.09.2011 12:48

не надо писать tf :o)

у with есть баг, если у объекта в with есть одноименный метод, как в месте в котором он используется, будет вызываться метод локальный.

Denis_Pryanikov 01.09.2011 13:27

Это было для примера...

А по скорости есть инфа? ._.

КорДум 01.09.2011 13:56

Проведите тест и узнаете.

Denis_Pryanikov 01.09.2011 14:01

Цитата:

Сообщение от КорДум (Сообщение 1027431)
Проведите тест и узнаете.

Логично. Просто зачем изобретать велосипед, подумал я

КорДум 01.09.2011 14:06

Чисто логически: with должен работать быстрее, так как этап поиска объекта среди локальных-приватных-статичных областей будет пропущена на каждой строчке, кроме первой.

Denis_Pryanikov 01.09.2011 14:13

спасибо за ответ

wvxvw 01.09.2011 15:05

Нет, не работает быстрее, но иногда может работать медленнее. Обращение к свойсвту займет столько же времени в том и в другом случае. With - это отголосок макросов: когда-то, когда деревья были большими, в Lisp'e было принято использовать макросы типа (with-output-to-string ...), (with-open-file ...) и т.п. Там они тоже ничего не ускоряют, но просто писать удобнее. В AS3 нет в with смысла, т.как это больше не макрос.
Может работать медленнее, если свойсво нужно искать динамически, и свойсвто находится не в первой доступной области видимости.


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

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