Функция – это фрагмент исполняемого кода, который определен в JavaScript_про_грамме или заранее предопределен в реализации JavaScript. Хотя функция опре_ деляется только один раз, JavaScript_программа может исполнять или вызывать ее сколько угодно. Функции могут передаваться аргументы, или параметры, оп_ ределяющие значение или значения, для которых она должна выполнять вычис_ ления; также функция может возвращать значение, представляющее собой ре_ зультат этих вычислений. Реализации JavaScript предоставляют много предопре_ деленных функций, таких как функция Math.sin(), возвращающая синус угла.
JavaScript_программы могут также определять собственные функции, содержа_ щие, например, такой код:
function square(x) // Функция
называется square. Она
принимает
один аргумент, x.
{
// Здесь
начинается
тело функции.
return x*x;
// Функция
возводит
свой аргумент
в квадрат
и возвращает
//
полученное значение.
}
//
Здесь
функция заканчивается.
Определив функцию, можно вызывать ее, указав имя, за которым следует за_ ключенный в скобки список необязательных аргументов, разделенных запяты_ ми. Следующие строки представляют собой вызовы функций:
y = Math.sin(x); y = square(x);
d = compute_distance(x1, y1, z1, x2, y2, z2); move();
Важной чертой JavaScript является то, что функции представляют собой значе_ ния, которыми можно манипулировать в JavaScript_коде. Во многих языках, в том числе в Java, функции – это всего лишь синтаксические элементы языка, но не тип данных: их можно определять и вызывать. То обстоятельство, что функции
3.5. Объекты
в JavaScript представляют собой настоящие значения, придает языку большую гибкость. Это означает, что функции могут храниться в переменных, массивах и объектах, а также передаваться в качестве аргументов другим функциям. Очень часто это бывает очень удобно. Более подробно об определении и вызове функций, а также об использовании их в качестве значений рассказывается в главе 8.
Поскольку функции представляют собой значения, такие же, как числа и стро_ ки, они могут присваиваться свойствам объектов. Когда функция присваивает_ ся свойству объекта (объектный тип данных и свойства объекта описаны в разде_ ле 3.5), она часто называется методом этого объекта. Методы – важная часть объектно_ориентированного программирования. Им посвящена глава 7.