От https://developer.mozilla.org/en-US/docs/Web/API/Window
Объект окна представляет собой само окно.
Таким образом, все переменные и функции, которые вы вызываете, заключены внутри окна объекта. Однако вы можете опустить ссылку на объект каждый раз, когда вы вызываете функцию или переменную.
Зачем это? Подумайте о странице с 2 или более кадрами. Каждый кадр имеет собственный window
. Вы можете получить доступ к переменной внутри фрейма из другого фрейма, просто обращаясь к объекту цели window
. Это допустимо для каждой переменной или функции, объявленной как глобальная ... и она также подходит для собственных функций, например setTimeout
.
Так почему же нам нужно писать объяснение window.setTimeout
?
Просто, если вы находитесь внутри области действия и используете одно и то же имя собственной функции, вы можете выбрать, какую функцию использовать.
, например:
function myF() {
function setTimeout(callback,seconds) {
// call the native setTimeout function
return window.setTimeout(callback,seconds*1000);
}
// call your own setTimeout function (with seconds instead of milliseconds)
setTimeout(function() {console.log("hi"); },3);
}
myF();
Пожалуйста, обратите внимание, что объект window
существует только в среде браузера. Глобальным объектом Node.js
является global
, где window
не определен.
Первый будет работать только в браузере, последний - в любом месте. – zerkms
Если в браузере нет разницы, поскольку объект окна существует. В других средах может не существовать. – guanabara
А где еще можно работать, кроме браузера? – user3073240