Все сценарии, обработчики событий и URL_адреса в JavaScript в качестве гло_ бального объекта совместно используют один и тот же объект Window. Перемен_ ные и функции в JavaScript – это не более чем свойства глобального объекта. Это означает, что функции, объявленные в одном теге <script>, могут вызываться сценариями во всех последующих тегах <script>.
Поскольку обработка события onload не начинается до тех пор, пока не отработа_ ют все сценарии, каждый обработчик события onload обладает возможностью об_ ращения к любым функциям и переменным, объявленным в сценариях доку_ мента.
Всякий раз, когда в окно броузера загружается новый документ, объект Window переводится в состояние по умолчанию: любые свойства и функции, объявлен_ ные сценариями из предыдущего документа, удаляются и восстанавливаются все переопределенные стандартные системные свойства. Каждый документ на_ чинается с «чистого листа». Сценарии могут уверенно полагаться на это обстоя_ тельство – они не унаследуют измененное окружение, оставшееся от предыду_ щего документа. Кроме того, это означает, что все переменные и функции, опре_ деляемые сценарием, будут существовать только до того момента, пока текущий документ не замещен новым.
13.5. Исполнение JavaScript*программ
Срок жизни свойств объекта Window совпадает со сроком жизни документа, кото_ рый содержит JavaScript_код и объявляет эти свойства. Объект Window обладает более продолжительным временем жизни – он существует ровно столько, сколь_ ко существует соответствующее ему окно броузера. Ссылка на объект Window оста_ ется действительной независимо от того, сколько документов загружалось и вы_ гружалось. Это верно только для веб_приложений, которые имеют несколько окон или фреймов. В данном случае JavaScript_код из одного окна может исполь_ зовать ссылку на другое окно или фрейм, причем эта ссылка останется работо_ способной, даже если в другое окно или фрейм будет загружен новый документ.