Функция - это именованный и параметризованный блок программного кода 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 выполняет свой код,
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
Читать дальше
Конец ознакомительного отрывка
Купить книгу