Object - это класс, элементами которого являются любые объекты JavaScript. У всех объектов этого класса есть общие методы. Таких методов мы рассмотрим три: toString(), valueOf() и assign().
Метод toString() осуществляет преобразование объекта в строку символов (строковый литерал). Он используется в JavaScript-программах повсеместно, но в основном неявно. Например, при выводе числа или строковых объектов. Интересно применение toString() к функциям, например, к функции pr() из предыдущего примера:
document.write(pr.toString());
Результат исполнения:
function pr(){ a = this.src.split(':'); return a[0]+':';}
Однако, если распечатать таким же образом объект класса Image из того же примера:
document.write(document.i1.toString());
то получим уже следующее: [object] (в Internet Explorer) либо [object Image](в Netscape Navigator). Таким образом, далеко не всегда метод toString()возвращает строковый эквивалент содержания объекта.
Аналогично ведет себя и метод valueOf(), позволяющий получить значение объекта. В большинстве случаев он работает подобно методу toString(), особенно если нужно выводить значение на страницу. Например, операторdocument.write(pr.valueOf()) выдаст то же самое, что иdocument.write(pr.toString()) выше.
В отличие от двух предыдущих методов, метод assign() позволяет не прочитать, а переназначить какое-либо свойство и метод объекта. Следует заметить, что этот метод работает не во всех браузерах и не со всеми объектами. В общем случае оператор объект.свойство = значение равносильно операторуобъект.свойство.assign(значение). Например, следующие операторы равносильны - они перенаправляют пользователя на новую страницу:
Класс объектовWindow - это самый старший класс в иерархии объектов JavaScript. Объектwindow, относящийся к текущему окну (т.е. в котором выполняется скрипт), является объектом классаWindow. Класс объектов Frame содержится в классе Window, т.е. каждый фрейм - это тоже объект класса Window.
О фреймах речь пойдет ниже, а пока вернемся к объекту window. Объект window создается только в момент открытия окна. Все остальные объекты, которые порождаются при загрузке страницы, есть свойства объекта window. Более того, все глобальные переменные, определенные в данном окне, тоже являются свойствами объекта window. Таким образом, у объекта windowмогут быть разные свойства при загрузке разных страниц. Кроме того, в разных браузерах свойства объектов и поведение объектов и браузера при обработке событий может быть различным. При программировании на JavaScript чаще всего используют следующие свойства, методы и события объекта window:
Таблица 4.1. Свойства, методы и события объекта window
Поскольку объект window является самым старшим, то в большинстве случаев при обращении к его свойствам и методам приставку " window." можно опускать (разумеется, в случае, если вы хотите обратиться к свойству или методу текущего окна, где работает скрипт; если же это другое окно, то необходимо указать его идентификатор). Так, например, можно писать alert('Привет') вместо window.alert('Привет'), или location вместоwindow.location. Исключениями из этого правила являются вызовы методов open() иclose(), у которых нужно указывать имя окна, с которым работаем (родительское в первом случае и дочернее во втором). Свойства frames[], self, parent и top будут рассмотрены в разделе, посвященном фреймам. Свойство opener будет рассмотрено при описании методаwindow.close().