Функция - это именованный и параметризованный блок программного кода JavaScript, который определяется один раз, а использоваться может многократно. Формальное знакомство с функциями мы отложим до главы 8 «Функции», однако, как и в случае с объектами и массивами, мы много раз встретимся с функциями, прежде чем доберемся до этой главы. Ниже приводятся несколько примеров простых функций:
>// Функции - это параметризованные блоки программного кода JavaScript,
>// которые можно вызывать многократно.
>function plus1(x) { // Определить функцию с именем "plusr и с параметром "х"
> return х+1; // Вернуть значение на 1 больше полученного
>} // Функции заключаются в фигурные скобки
>plus1(y) // => 4: у имеет значение 3, поэтому этот вызов вернет 3+1
>var square = function(x) { // Функции можно присваивать переменным
> return х*х; // Вычислить значение функции
>}; // Точка с запятой отмечает конец присваивания.
>square(plus1(y)) // => 16: вызов двух функций в одном выражении
При объединении функций с объектами получаются методы.
>// Функции, присвоенные свойствам объектов, называются методами.
>// Все объекты в JavaScript имеют методы:
>var а = []; // Создать пустой массив
>а.push(1,2,3); // Метод push() добавляет элементы в массив
>a.reverse(); // Другой метод: переставляет элементы в обратном порядке
>// Можно определять собственные методы. Ключевое слово "this" ссылается на объект,
>// в котором определен метод: в данном случае на массив points,
>points.dist = function() { // Метод вычисления расстояния между точками
>var р1 = this[0]; // Первый элемент массива, относительно которого вызван метод
>var р2 = this[1]; // Второй элемент объекта "this"
>var а = р2.х-р1.х; // Разность координат X
>var b = р2.у-р1.у; // Разность координат Y
>return Math.sqrt(a*a + // Теорема Пифагора
> b*b); // Math.sqrtO вычисляет корень квадратный
>};
>points.dist() // => 1.414: расстояние между 2-мя точками
Теперь, как было обещано, рассмотрим несколько функций, которые демонстрируют применение наиболее часто используемых управляющих инструкций JavaScript:
>// В JavaScript имеются условные инструкции и инструкции циклов, синтаксически
>// похожие на аналогичные инструкции С, C++, Java и в других языках.
>function abs(x) { // Функция, вычисляющая абсолютное значение
> if (х >= 0) { // Инструкция if ...
> return х; // выполняет этот код, если сравнение дает true.
> } // Конец предложения if.
> else { // Необязательное предложение else выполняет свой код,