ActionScript не дает блокам выполнения (например, блоку for
) собственную область видимости, в отличие от некоторых других языков.Наименьшая область действия для переменной - это функция.Так что для компилятора оба эти примера одинаковы.Фактически, реализация - это метод, называемый «подъем переменной», при котором компилятор перемещает объявление переменной до начала области действия.
Это имеет некоторые интересные, если не неожиданные, побочные эффекты;Вы можете эффективно «использовать» переменную до того, как она была «объявлена».Например:
trace(test); // NaN
var test:Number = 10;
trace(test); // 10
Обратите внимание, что первая трассировка не дает сбоя.
В любом случае, главное, что нужно помнить, это то, что переменные локально ограничены функциями.Это особенно важно при работе с замыканиями.