Для того чтобы функцию showlnfo можно было
использовать как одноименный метод, применимый к объектам класса Book, к
определению нашего конструктора была добавлена еще одна строчка:
this.showlnfo = showlnfo;.
342 Часть II. Применение веб-технологий стороны клиента для создания сайтов
I HTML, CSS, скрипты: практика создания сайтов
I
р Автор: Артемий Ломов
If Издательство: БХВ-Петербург
| Год выпуска: 2005
I
I Веб-дизайн
I Автор: Дмитрий Кирсанов
| Издательство: Символ-Плюс
| Год выпуска: 1999
р
I Создание веб-страниц: искусство верстки
I
I Автор: Михаил Дубаков
р
| Издательство: Новое знание
I
Г Год выпуска: 2004
Рис. 7.3. Содержание этой страницы полностью сформировано скриптом
Функция showinfo не получает никаких аргументов и не возвращает
значений. Она лишь включает в отображаемый браузером документ значения
свойств title, author, publisher и year текущего (this) объекта, сдабривая их
подобающей HTML-разметкой.
С этой целью используется метод write объекта document, олицетворяющего
текущий документ и любезно предоставленного нам соответствующим
интерфейсом DOM. Имя метода, по аналогии с именами свойств, также
отделяется от названия объекта, к которому относится данный метод, символом
точки («.»)• Метод document.write вызывается с аргументами, имеющими
значения строкового типа. Знак «+» в данном контексте соответствует
операции объединения (конкатенации) строк. Небольшой поясняющий пример:
var d = * Dynamic *;
var h = ‘HTML’;
Глава 7. Создание интерактивных сайтов при помощи языка сценариев JavaScript 343
var mystring = d + ‘ ‘ + h + ‘ имеет большое будущее!’;
/* Итоговая строка (значение переменной mystring):
‘Dynamic HTML имеет большое будущее!’ */
Для того чтобы выполнить ту или иную функцию, необходимо ее явно
вызвать (из основной части скрипта, при помощи обработчика событий или
любым другим доступным способом). Иначе функция — это не более чем
висящее на стенке ружье, из которого никогда не стреляли.
Основной код программы в нашем примере из листинга 7.4 размещен после
определений функций Book и showinfo, и именно отсюда начинается
выполнение сценария немедленно после открытия страницы пользователем.
Определения функций могут размещаться и в конце программы (да и вообще в
любом ее месте) — это не имеет никакого значения.
В начале работы скрипта уже знакомым читателю способом (с
использованием конструктора Book) создается три однотипных объекта (с именами
html cssscripts, webdesign И webpages), Содержащих данные О трех
различных книгах.
Затем к созданным объектам применяется метод showinfo— иначе говоря,
вызывается одноименная функция, осуществляющая отображение
информации о книгах на веб-странице.
…Учебники, рассчитанные на новичков, редко когда рассказывают о
собственноручном создании объектов в JavaScript. Пригодится ли вам этот навык в
повседневной практике — сказать трудно. Зато, научившись определять свои
собственные конструкторы объектов и описывать методы, мы поймали трех
зайцев сразу.
Во-первых, надо надеяться, стали понятными и прозрачными сущность и
терминология объектно-ориентированного программирования. Во-вторых,
коль уж мы умеем создавать свои объекты, работать с чужими — уже
готовенькими— сможем и подавно. Наконец, в-третьих, «по ходу пьесы» мы
окончательно разобрались с таким механизмом, как функции. Разумеется, для
закрепления всей этой «высокой теории» необходимо большее количество
практических примеров (и они, несомненно, будут); не помешает и
самостоятельный опыт. Но самый сложный и концептуальный материал уже позади.
Инструменты первой необходимости
Построив прочный фундамент, перейдем к сооружению «первого этажа»
башни познаний о JavaScript из «кирпичиков» первоочередных конструкций
языка.
Соединением литералов, переменных, вызовов функций со знаками
операций, предусмотренными в JavaScript, образуются выражения.
344 Часть II. Применение веб-технологий стороны клиента для создания сайтов
Мы уже сталкивались с выражениями в рассмотренных ранее примерах: так,
например, конструкция ?? + this.title + ?\n?, фигурирующая в
качестве аргумента одного из вызовов метода document.write в
листинге 7.4 — не что иное, как выражение.
JavaScript определяет широкий спектр операций— арифметических,
логических, служебных…
5th Фев 2011
|
Теги:
|