Почему MM_SYSTEM_RESTART_SECONDS
undefined
в следующем фрагменте?Переменная javascript, определенная вне функции, является «неопределенной» в функции
Если var MM_SYSTEM_RESTART_SECONDS = 40;
помещается внутри функции, то MM_SYSTEM_RESTART_SECONDS
является 40
, но если за пределами функции, то MM_SYSTEM_RESTART_SECONDS
всегда undefined
.
var MM_SYSTEM_RESTART_SECONDS = 40;
function wait_until_MM_restarts()
{
restart_timeout_start_seconds = get_cookie("restart_timeout_start_seconds")
elapsed_restart_seconds = elapsed_seconds(restart_timeout_start_seconds)
append_debug_message(elapsed_restart_seconds + "/" + MM_SYSTEM_RESTART_SECONDS)
if(elapsed_restart_seconds > MM_SYSTEM_RESTART_SECONDS)
Это не должно быть. Я могу думать о вещах, которые могли бы вызвать этот эффект ... но нужно было бы увидеть остальную часть функции, чтобы рассказать. Обычно рекомендуется предоставлять фрагменты кода, которые ** могут быть запущены **, чтобы продемонстрировать проблему. – Quentin
Я думаю, вам нужно предоставить еще несколько контекстов. Лучше создайте демо-версию http://jsfiddle.net/. –
Я стараюсь избегать глобальных привязок. Я понимаю ваш интерес к тому, почему это происходит, это хороший вопрос (+1). Тем не менее, я передал бы MM_SYSTEM_RESTART_SECONDS в функцию wait_until_MM_restarts() в качестве параметра. –