JavaScript. Подробное руководство, 6-е издание (Флэнаган) - страница 11

>

>    return -x;     // если сравнение дает значение false.

>  }                // Фигурные скобки можно опустить, если предложение

>                   // содержит 1 инструкцию.

>}                  // Обратите внимание на инструкции return внутри if/else.


>function factorial(n) { // Функция, вычисляющая факториал

>  var product = 1;      // Начать с произведения, равного 1

>  while(n > 1) {        // Повторять инструкции в {}, пока выраж. в () истинно

>    product *= n;       // Сокращенная форма выражения product = product * n;

>    n--;                // Сокращенная форма выражения n = п - 1

>  }                     // Конец цикла

>  return product;       // Вернуть произведение

>}

>factorial(4)            // => 24: 1*4*3*2


>function factorial2(n) { // Другая версия, использующая другой цикл

>  var і, product = 1;    // Начать с 1

>  for(i=2; і <= n; i++)  // і автоматически увеличивается с 2 до n

>    product *= i;        // Выполнять в каждом цикле. {} можно опустить,

>                         // если тело цикла состоит из 1 инструкции

>  return product;        // Вернуть факториал

>}

>factorial2(5)            // => 120: 1*2*3*4*5


JavaScript - объектно-ориентированный язык, но используемая в нем объектная модель в корне отличается от модели, используемой в большинстве других языков. В главе 9 «Классы и модули» детально рассматривается объектно-ориентированное программирование на языке JavaScript на большом количестве примеров; эта глава является одной из самых больших в книге. Ниже приводится очень простой пример, демонстрирующий определение класса JavaScript для представления точек на плоскости. Объекты, являющиеся экземплярами этого класса, обладают единственным методом с методом r(), который вычисляет расстояние между данной точкой и началом координат:


>// Определение функции-конструктора для инициализации нового объекта Point

>function Point(x,y) { // По соглашению имя конструкторов начинается с заглавного символа

>  this.x = x;         // this - ссылка на инициализируемый объект

>  this.у = у;         // Сохранить аргументы в свойствах объекта

>} // Ничего возвращать не требуется


>// Чтобы создать новый экземпляр, необходимо вызвать функцию-конструктор

>// с ключевым словом "new"

>var р = new Point(1, 1); // Точка на плоскости с координатами (1,1)


>// Методы объектов Point определяются за счет присваивания функций свойствам

>// объекта-прототипа, ассоциированного с функцией-конструктором.

>Point.prototype.r = function() {

>  return Math.sqrt( // Вернуть корень квадратный от x>2 + y>2

>          this.x * this.x + // this - это объект Point, относительно которого...