Иерархия объектов
Среди объектов существуют определенные взаимоотношения. Например, объекты Navigator имеют структуру, отражающую структуру страницы HTML. Такие отношения называются иерархией экземпляров, так как эта иерархия работает только с конкретными экземлярами объектов, а не с абстрактными классими.
Объект window является родительским по отношению ко всем остальным объектам Navigator. Прямыми потомками объекта window являются объекты location, history и document. Объекты forms, links и anchors являются дочернеми для объекта document.
Каждый объект является потомком объекта более высокого уровня. Форма с названием orderForm является объектом и в то же время свойстом обекта document. Таким образом для вызова такой формы используется выражение:
document.orderForm
Иерархию объектов языка JavaScript можно сопоставить с иерархией объектов в реальном мире. Колеса, руль и педали - это все объекты, принадлежащие велосипеду. Велосипед представляет собой объект, принадлежащий к средствам наземного транспорта, которые, в свою очередь, принадлежат к более общей категории средств передвижения.
В терминах объектов JavaScript эти взаимоотношения могли бы быть выражены следующим образом:
travelMode.groundTransport.bicycle.handleBars
Наиболее общий объек высшего уровня находится слева в выражении, и слева направо происходит переход к более частным объектам, являющимся при этом наследниками высших в иерархии объектов. Таким образом чтобы обратиться к определенному свойству этих объектов, вы должны определить имя объекта и всех его предков.
Теперь проиллюстрируем иерархию объектов:
navigator
window
|
+--parent, frames, self, top
|
+--location
|
+--history
|
+--document
|
+--forms
| |
| elements (text fields, textarea, checkbox, password
| radio, select, button, submit, reset)
+--links
|
+--anchors
JavaScript и HTML Планировка
Чтобы использовать JavaScript корректно в Навигаторе, нужно понимать как Навигатор выполняет планировку. Планировка относится к преобразованию директив открытого HTML текста в графическое представление на вашем компьютере. Вообще говоря, планировка идет последовательно в Навигаторе. То есть Навигатор начинает с вершины HTML файла и продолжает идти вниз, выясняя, как выводить на экрану, как это делать. Это начинается с HEAD HTML документа, затем c вершины BODY и так далее.
Из-за этого "нисходящего" поведения, JavaScript выдает только тот HTML, с которым она столкнулась. Например вы определили форму с парой текстового вклада elements:
Затем эти элементы формы будут отражены, так как объекты JavaScript document.statform.username и document.statform.userage, которые вы можете использовать где-нибудь после того, как форма определена. Однако, вы могли бы не использовать эти объекты прежде, чем форма определена. Так, например, вы могли показывать значение этих объектов в скрипте после определения формы:
document.write(document.statform.username.value)
document.write(document.statform.userage.value)
Однако, если Вы пробовали делать это перед определением формы (то есть выше этого в HTML - странице),то вы можете получить ошибку, так как объекты еще не существуют в Навигаторе.
Аналогично, если только произошла планировка, установившая значение свойства, не воздействует на ее значение или ее вид. Например, вы определили заголовок документа следующим образом:
Моя JavaScript Страница
Это отражается в JavaScript как значение document.title. Если только Навигатор выделил это в планировке (в этом случае, в названии окна Навигатора), Вы не можете изменять значение в JavaScript. Так, если ниже в странице, у вас есть следующий скрипт:
document.title = " Новая улучшенная JavaScript страница "
Это не будет изменять значение document.title, не будет воздействовать на вид страницы, и не образуется ошибка.
Ключевые объекты Навигатора
Часть из наиболее используемых в Навигаторе обектов, включает документ, форму, и окно.
Использование объекта документ
Один из наиболее используемых в Навигаторе объект - это объект документа, потому что методы write и writeln могут вызвать HTML. Эти методы - это способ, которым Вы показываете утверждения JavaScript пользователю. Единственая разность между write и writeln - это то, что write записывает строку или несколько строк в окно документа, а writeln записывает строку или несколько строк в окно документа и добавляет символ новой строки в конец вывода. Но так как HTML игнорирует добавления символа новой строки, то это будет создавать эффект предварительно отформатированного текста, типа тега PRE.
Объект документа также имеет обработчики событий onLoad и onUnload, они вызываются соответственно для выполнения функции, когда пользователь впервые загрузил страницу и когда пользователь выходит из страницы.
Имеется только один объект документа в странице, это - предок для всей формы, связь и объекты якоря в странице.