Объекты, методы и свойства
Говоря простым языком, объект (object) - это какой-либо предмет. Что касается JavaScript, его объекты находятся внутри браузера. Это, в частности, окно браузера, формы и их части, например кнопки и текстовые окна. В JavaScript также имеется собственная группа встроенных объектов, к которым относятся массивы, данные и т.д. Сейчас вам не обязательно фиксировать на этом внимание, поскольку все эти объекты будут рассмотрены позже. Пока вы должны усвоить лишь необходимые определения.
Именно благодаря наличию объектов язык JavaScript считается объектно-ориентированным. Язык организован вокруг объектов, а не действий, или, иначе говоря, ориентирован на данные, а не на логику. При объектно-ориентированном программировании первоочередное внимание уделяется объектам, с которыми производятся некоторые манипуляции, а не логическим правилам, необходимым для таких манипуляций. Преимуществом такого подхода является не только облегчение программирования (или написания сценария), но и в то, что каждое действие можно выполнить разными способами.
Метод (method) - это действия, которые может выполнять объект. В реальном мире у объектов тоже имеются какие-либо методы. Машины ездят, собаки лают, доллар покупается и т.д. В нашем случае alert() является методом объекта Window, то есть объект Window может выдавать пользователю какое-либо предупреждение в окне сообщений. Примерами других методов являются открытие и закрытие окон, нажатие кнопок. Здесь речь идет о трех методах: open(), close() и click(). Обратите внимание на круглые скобки. Они означают, что методы, в отличие от свойств, используются.
У всех объектов имеются свойства (properties). Если вы и далее будете следовать аналогии с объектами реального мира, то обнаружите, что все предметы обладают какими-то свойствами: у машин есть колеса, а у собаки - шерсть. Что касается JavaScript, то у такого объекта, как браузер, имеется название и номер версии.
Рекомендации: Все будет понятнее, если объекты ассоциировать с вещами, а методы - с действиями.
Пользоваться методом alert() проще всего. Он применяется для вывода на экран текстовой информации в краткой форме. После прочтения сообщения пользователь щелкает по кнопке OK и окно исчезает.
Прежде всего, откройте шаблон HTML-страницы в текстовом редакторе и сохраните его под новым именем в любой удобной для вас папке.
<html>
<head>
<title>Простая страница</title>
<script language="JavaScript">
<!-- Маскируемся!
// Снимаем маскировку. -->
</script>
</head>
<body>
</body>
</html>
Javascript и объектная модель
Скриптовые языки в некотором роде перевернули мир Интернета, и именно, благодаря им появился DHTML, который позволяет делать со страничкой практически что угодно. Как известно, всего два языка претендуют на лавры победителя в броузере. Это VBScript - подмножество Visual Basic-а и JavaScript. Последним мы и займемся, как с наиболее универсальным. Сами по себе изучать скриптовые языки не имеет смысла, т.к. они тесно связаны с объектной моделью броузера и, по сути дела, большая часть скриптов просто устанавливает соответствующие свойства объектов или вызывает их методы. Давным-давно, когда броузеры еще имели номер версии равный единице, ничего подобного не было и в помине.
Информация просто выводилась на дисплей по мере поступления, не подвергаясь никаким изменениям. Все было просто, и даже глюков совместимости еще не было.
Сейчас же путь странички до дисплея гораздо дольше. Давайте поэтапно проследим ее путь:
- Страничка скачивается с сайта и размещается в памяти компьютера.
- Производится анализ странички, в результате которого она препарируется на составляющие.
- Блоки, из которых состоит страничка (<body></body>, <head></head>, <p></p> и т.д.) размещаются во временной базе данных соответственно структуре объектной модели.
- База данных становится доступной другим программам и, в частности, рендеру, который выводит страничку на экран. Для доступа и управления содержимым этой базы данных броузер предоставляет нам механизм объектов и скриптовый язык, посредством которого и выполняется доступ.
Разумеется, содержимое базы может быть изменено до вывода на экран, что и позволяет работать DHTML. Но объектная модель остается работать даже после того, как страничка показана на экране дисплея. Это дает нам возможность в небольших пределах (а в последних версиях HTML 6.0.2 практически полностью) менять содержимое странички после загрузки.
Чтобы было понятно, о чем мы говорим, рассмотрим общую структуру объектной модели. Ниже приведена объектная модель Internet Explorer-а версии 6.0.2 и выше.
- window - объект, дающий доступ к окну броузера
- frames - объект, дающий доступ к фреймам
- window...
- window...
- document - объект, содержащий в себе всю страничку
- all - полная коллекция всех тегов документа
- forms - коллекция форм
- anchors - коллекция якорей
- appleеs - коллекция апплетов
- embeds - коллекция внедренных объектов
- filters - коллекция фильтров
- images - коллекция изображений
- links - коллекция ссылок
- plugins - коллекция подключаемых модулей
- scripts - коллекция блоков <script></script>
- selection - коллекция выделений
- stylesheets - коллекция объектов с индивидуально заданными стилями
- history - объект, дающий доступ к истории посещенных ссылок
- navigator - объект, дающий доступ к характеристикам броузера
- location - объект, содержащий текущий URL
- event - объект, дающий доступ к событиям
- screen - объект, дающий доступ к характеристикам экрана
А использование JavaScript позволяет нам обойти различия в реализации объектных моделей.
Вместо того, чтобы подробно объяснять каждый объект, входящий в модель броузера, мы будем разъяснять смысл соответствующих объектов, их свойств и методов на конкретных примерах по мере возникновения необходимости.
Как видите, структура объектной модели достаточно сложна, но строго определена, и существует однозначный способ доступа к любому свойству или методу.
Синтаксис полностью соответствует тому, что используется в объектных языках. Т.е. нижележащие объекты отделяются от вышележащих точкой, и для доступа к конкретному свойству нужно просто корректно построить строку доступа. И вот здесь-то на сцену и выходит скриптовый язык, который и позволяет нам манипулировать объектами.
Как любой язык программирования, JavaScript имеет определенный набор типов переменных, операторов, встроенных функций и объектов. Изучение JavaScript как такового как раз и заключается в запоминании всего этого
Как и где размещать код скрипта?
Но сначала мы немного отвлечемся от эффектов и поговорим о том, как и где размещать JavaScript. Так как язык скриптовый и рассчитан на работу на web-страничках, то его код размещается непосредственно в HTML-коде странички. Причем, код на JavaScript обычно состоит из двух частей:
1. Функции, которые вызываются из кода странички в ответ на какое-то событие
2. Код событий, которые вызывают функции
Описание функций должно располагаться в теге <head></head> - это гарантирует нам, что к моменту вызова функции она уже будет находиться в памяти компьютера. Для вставки кода используется специальный тег <script>, в параметрах которого мы и определяем конкретный язык. Вот пример типичного описания JavaScript-вставки:
<script language="JavaScript">
<!--function somefunction(){// здесь располагается код функции}//-->
</script>
Обратите внимание, что непосредственно сам код заключен в тег комментария. Это сделано для того, чтобы более старые броузеры игнорировали непонятные им команды. Новые же программы знают о существовании закомментированных скриптов и им это не мешает.
Заметьте также, что закрывающий тег комментария несколько необычен и предваряется двумя косыми чертами. Две косые черты - это комментарий языка JavaScript, т.е. скрипт игнорирует все, что идет после него.