AlexSm
17.12.2001, 11:28
Добрый день, Флешеры!
Для меня было открытием то, что ActionScript не знает про инкапсуляцию данных.
Смотрите
i=10;
t=20;
r=30;
r=Fun(i);
trace("i="+i+" t="+t+" r="+r);
function Fun(i){
i=100;
t=200;
return r;
}
TRACE Выдаст :
i=10 t=200 r=30
С переменной i - все нормально.
Но переменная t, определенная вне функции Fun() внутри этой функции переопеделилась.
в строке return r - вообще явная идеологическая ошибка, но Актион Скрипт воспринимает внешние переменные также как и внутрении.
Меня это очень сильно удивило :eek: и даже разозлило :mad: , но что поделаешь, надо придумать ка же с этим бороться :confused:
Как делать рекурсивный вызов функций ?
Ведь кроме передаваемых параметров (которые как видим инкапсулируются, в функции надо сохранять и кучу других промежуточных данных и чтобы при выходе из рекурсии они восстановились....
Как ВЫ делаете рекурсию ???
СПАСИБО БОЛЬШОЕ !!!!
Для меня было открытием то, что ActionScript не знает про инкапсуляцию данных.
Смотрите
i=10;
t=20;
r=30;
r=Fun(i);
trace("i="+i+" t="+t+" r="+r);
function Fun(i){
i=100;
t=200;
return r;
}
TRACE Выдаст :
i=10 t=200 r=30
С переменной i - все нормально.
Но переменная t, определенная вне функции Fun() внутри этой функции переопеделилась.
в строке return r - вообще явная идеологическая ошибка, но Актион Скрипт воспринимает внешние переменные также как и внутрении.
Меня это очень сильно удивило :eek: и даже разозлило :mad: , но что поделаешь, надо придумать ка же с этим бороться :confused:
Как делать рекурсивный вызов функций ?
Ведь кроме передаваемых параметров (которые как видим инкапсулируются, в функции надо сохранять и кучу других промежуточных данных и чтобы при выходе из рекурсии они восстановились....
Как ВЫ делаете рекурсию ???
СПАСИБО БОЛЬШОЕ !!!!