Как обсуждалось в комментариях к этому ответу , установка определенных значений может иметь неожиданные последствия.
В Javascript это более вероятно, потому что установка глобальной переменной фактически означает установку свойстваwindow
объект.Например:
function foo (input) {
top = 45;
return top * input;
}
foo(5);
Возвращает NaN
, потому что вы не можете установить window.top
, а умножение объекта window
не работает.Изменение на var top = 45
работает.
Другие значения, которые вы не можете изменить, включают document
.Кроме того, существуют другие глобальные переменные, которые, когда установлены, делают захватывающие вещи.Например, настройка window.status
обновляет значение в строке состояния браузера, а window.location
переходит в новое местоположение.
Наконец, если вы обновите некоторые значения, вы можете потерять некоторые функции.Если, например, вы установили window.frames
в строку, например, вы не можете использовать window.frames[0]
для доступа к кадру.