Объект window это объект верхнего уровня в клиентской иерархии JavaScript. Объект window может представлять окно верхнего уровня или фрэйм из набора фрэймов. Для удобства Вы можете представлять объект Frame как объект window, который не является окном верхнего уровня. Однако в действительности не существует отдельный класс Frame; эти объекты в действительности являются объектами window с очень небольшими отличиями:
Для всех окон свойства self и window объекта window являются синонимами текущего окна, и Вы можете по выбору использовать их для обращения к текущему окну. Например, можно закрыть текущее окно, вызвав метод close в window или в self. Вы можете использовать эти свойства, чтобы сделать Ваш код более читабельным или чтобы отличить ссылку self.status от status. См. далее примеры для свойств и методов.
Поскольку принимается существование текущего окна, Вы не должны обращаться к имени окна при вызове его методов и присвоении значений свойств. Например, status="Jump to a new location" это верное присвоение свойства, а close() это верный вызов метода.
Однако, если Вы открываете или закрываете окно обработчиком события, Вы обязаны специфицировать window.open() или window.close() вместо open() или close(). Из-за видимости static-объектов в JavaScript, вызов close() без указания имени объекта эквивалентен document.close().
По некоторым причинам, если Вы обращаетесь к объекту location в обработчике события, Вы обязаны специфицировать window.location вместо location. Вызов location без специфицирования имени объекта эквивалентен document.location, что является синонимом document.URL.
Вы можете обратиться к объектам Frame окна в коде через использование массива frames. В окне с тэгом FRAMESET массив frames содержит вхождение для каждого фрэйма.
Окну нужны обработчики событий, пока HTML, который содержит тэг BODY или FRAMESET, не будет загружен в него.