Я предполагаю, что вы имеете в виду глобальные, а не статические переменные. Глобальные переменные объявляются в глобальной области документа. Они доступны из всех методов (функций), и когда вы изменяете их значение из блока кода функции, значение сохраняется, поскольку вы изменяете глобальную переменную.
Например:
<script type="text/javascript">
global_var = 0; // declared globally
function global_inc(){
global_var += 1; // global var incremented by 1
}
function local_inc(){
local_var = global_var; // declared locally, and scope ends at function end.
local_var += 1; // local var incremented by 1
alert('global: ' + global_var);
alert('local: ' + local_var);
}
function alert_global(){
alert('global: ' + global_var);
}
</script>
<script type="text/javascript">
alert_global(); // alert global (0)
global_inc(); // increment global to 1
local_inc(); // set local to global (1) and increment local to (2), alert both
alert_global(); // alert global (1)
</script>
Вы получите:
предупреждение о "global: 0" от alert_global ()
предупреждение о "global: 1" от local_inc ()
оповещение о "local: 2" от local_inc ()
предупреждение о "global: 1" от alert_global ()