страница 13
В типичной программе с использованием процедур программист непосредственно несет ответственность как за то, что появляется на экране, так и за те действия, которые непосредственно выполняются программой. При первом запуске программы огромная часть кода предназначена для того, чтобы определить графическую среду. На экране при этом может располагаться несколько текстовых полей и кнопок. Чтобы определить, на какой кнопке щелкнул пользователь, программа должна знать координаты точки, на которой был выполнен щелчок, а затем сравнить эти координаты на совпадение с координатами одной из кнопок на экране. В зависимости от того, какая кнопка используется, выполняются заранее определенные для текущего случая инструкции.
Объектно-ориентированное программирование представляет собой нечто совершенно противоположное. Кнопка интерпретируется как объект - вещь вполне реальная. Объект имеет свойства (надпись, размер, событие и т.п.). Объект также может содержать сценарий. В то же время, системные программы и браузеры могут посылать объекту сообщения - в зависимости от того, что делает пользователь, - для запуска сценария. Например, если пользователь щелкает мышкой на записи текстового поля, то система или браузер сообщает полю, что кто-то щелкает там (это значит, что данное поле активизируется), передавая полю полномочия по поводу принятия решения, что ему следует делать в ответ на такое действие. Именно здесь в силу вступают сценарии. Сценарий связан с полем и содержит инструкции, которые выполняются при активизации поля. Другой набор инструкций может использоваться для контроля данных, вводимых пользователем в поле, или на вкладке, или в результате щелчка на опции.
Некоторые из создаваемых сценариев по своей структуре могут напоминать процедуры: они содержат простые инструкции, которые поочередно выполняются. Однако когда вы перейдете к управлению данными формы, то поймете, что инструкции JavaScript выполняются исключительно как объектно-ориентированные. Каждая форма является объектом. Это же относится ко всякому элементу управления (например, переключателю или текстовому полю). В этом случае для выполнения запланированной работы сценарий вызывает свойства соответствующих объектов.