Сохраняются ли статические переменные JavaScript, когда элемент управления покидает сценарий? - PullRequest
0 голосов
/ 30 сентября 2011

У меня есть вопрос о статических переменных в JavaScript. Они только длятся во время действия сценария? Я имею в виду, что если элемент управления покидает сценарий и возвращается к HTML-коду, статические переменные все еще там?

1 Ответ

0 голосов
/ 30 сентября 2011

Я предполагаю, что вы имеете в виду глобальные, а не статические переменные. Глобальные переменные объявляются в глобальной области документа. Они доступны из всех методов (функций), и когда вы изменяете их значение из блока кода функции, значение сохраняется, поскольку вы изменяете глобальную переменную.

Например:

<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 ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...