Используйте ключевое слово var для локальных переменных
Все локальные переменные должны использовать ключевое слово var. Это предохраняет переменные от глобального доступа и, что более важно, предохраняет переменные от неумышленного переназначения[]. Например, следующий код функции не использует ключевое слово var при объявлении переменной, что приводит к (неумышленной) перезаписи внешней переменной, не относящейся к функции:
counter = 7;
function loopTest()
{
trace(counter);
for(counter = 0; counter < 5; counter++)
{
trace(counter);
}
}
trace(counter);
loopTest();
trace(counter);
Этот код выводит:
7
7
0
1
2
3
4
5
В данном случае переменная counter, находящаяся на основной временной диаграмме, переназначается переменной counter, которая находится внутри функции. Ниже приведен исправленный код, который использует ключевое слово var, для объявления обеих переменных. Использование декларации var в функции устраняет ошибку вышеуказанного кода:
var counter = 7;
function loopTest()
{
trace(counter);
for(var counter = 0; counter < 5; counter++)
{
trace(counter);
}
}
trace(counter);
loopTest();
trace(counter);
Исправленный код выводит следующее:
7
7
0
1
2
3
4
7
Из последней строки видно, что не принадлежащая функции переменная counter сохранила свое значение после вызова функции.