JavaScript. Подробное руководство, 6-е издание, стр. 6
<b> } // Конец цикла</b>
<b> return product; // Вернуть произведение</b>
<b>}</b>
<b>factorial(4) // => 24: 1*4*3*2</b>
<b>function factorial2(n) { // Другая версия, использующая другой цикл</b>
<b> var і, product = 1; // Начать с 1</b>
<b> for(i=2; і <= n; i++) // і автоматически увеличивается с 2 до n</b>
<b> product *= i; // Выполнять в каждом цикле. {} можно опустить,</b>
<b> // если тело цикла состоит из 1 инструкции</b>
<b> return product; // Вернуть факториал</b>
<b>}</b>
<b>factorial2(5) // => 120: 1*2*3*4*5</b>
JavaScript - объектно-ориентированный язык, но используемая в нем объектная модель в корне отличается от модели, используемой в большинстве других языков. В главе 9 «Классы и модули» детально рассматривается объектно-ориентированное программирование на языке JavaScript на большом количестве примеров; эта глава является одной из самых больших в книге. Ниже приводится очень простой пример, демонстрирующий определение класса JavaScript для представления точек на плоскости. Объекты, являющиеся экземплярами этого класса, обладают единственным методом с методом r(), который вычисляет расстояние между данной точкой и началом координат:
<b>// Определение функции-конструктора для инициализации нового объекта Point</b>
<b>function Point(x,y) { // По соглашению имя конструкторов начинается с заглавного символа </b>
<b> this.x = x; // this - ссылка на инициализируемый объект</b>
<b> this.у = у; // Сохранить аргументы в свойствах объекта</b>
<b>} // Ничего возвращать не требуется</b>
<b>// Чтобы создать новый экземпляр, необходимо вызвать функцию-конструктор </b>
<b>// с ключевым словом "new"</b>
<b>var р = new Point(1, 1); // Точка на плоскости с координатами (1,1)</b>
<b>// Методы объектов Point определяются за счет присваивания функций свойствам </b>
<b>// объекта-прототипа, ассоциированного с функцией-конструктором.</b>
<b>Point.prototype.r = function() {</b>
<b> return Math.sqrt( // Вернуть корень квадратный от x<sup>2</sup> + y<sup>2</sup></b>
<b> this.x * this.x + // this - это объект Point, относительно которого... </b>
<b> this.у * this.у // ...вызывается метод.</b>
<b> );</b>
<b>};</b>
<b>// Теперь объект p типа Point (и все последующие объекты Point) наследует метод r()</b>
<b>p.r() // => 1.414...</b>
Глава 9 является кульминацией первой части, а главы, которые следуют за ней, связывают некоторые оборванные концы и завершают исследование базового языка. В главе 10 «Шаблоны и регулярные выражения» описывается грамматика регулярных выражений и демонстрируются приемы использования регулярных выражений для реализации сопоставления с текстовыми шаблонами. В главе 11 «Подмножества и расширения JavaScript» рассматриваются подмножества и расширения базового языка JavaScript. Наконец, прежде чем перейти к исследованию клиентского JavaScript в веб-броузерах, в главе 12 «Серверный JavaScript» будут представлены два способа использования JavaScript за пределами веб-броузеров.
1.2. Клиентский JavaScript
Изучение клиентского JavaScript представляет собой задачу, нелинейную из-за перекрестных ссылок в значительно меньшей мере, чем базовый язык, и поэтому вполне возможно изучать особенности использования JavaScript в веб-броузерах в линейном порядке. Возможно, вы взялись за чтение этой книги, чтобы изучить клиентский JavaScript - тему далекой второй части, поэтому здесь мы приводим краткий обзор основных приемов программирования клиентских сценариев, который сопровождается подробным примером.
Глава 13 «JavaScript в веб-броузерах» является первой главой второй части, в которой описываются детали использования JavaScript в веб-броузерах. Самое важное, что вы узнаете в этой главе, - программный код JavaScript может встраиваться в HTML-файлы с помощью тега <script>:
<b><html></b>
<b> <head></b>
<b> <script src="library.js"></script> <!-- подключить библиотеку JavaScript --></b>
<b> </head></b>
<b> <body></b>
<b> <р>Это абзац HTML</p></b>
<b> <script></b>
<b> // Это некоторый программный код на клиентском JavaScript,</b>
<b> // встроенный непосредственно в HTML-файл </b>
<b> </script></b>
<b> <р>Далее опять следует разметка HTML.</р> </b>
<b> </body></b>
<b></html></b>
Глава 14 «Объект Window» исследует приемы управления веб-броузером и описывает некоторые наиболее важные глобальные функции клиентского JavaScript. Например:
<b><script></b>
<b>function moveon() {</b>
<b> // Вывести модальный диалог, чтобы получить ответ пользователя </b>