Определение функции состоит из ключевого слова function и
Например, следующий код определяет простую функцию под названием square:
function square(number) {
return number * number;
}
Функция square принимает один аргумент - number. Функция состоит из одного оператора, который возвращает квадрат аргумента функции. Оператор return специфицирует значение, возвращаемое функцией.
return number * number
Все параметры передаются в функцию по значению; значение передаётся в функцию, но, если функция изменяет значение этого параметра, это изменение не отражается глобально или в вызывающей функции. Однако, если Вы передаёте в качестве параметра объект и функция изменяет свойства объекта, это изменение видно вне функции, как показано в примере:
function myFunc(theObject) {
theObject.make="Toyota"
}
mycar = {make:"Honda", model:"Accord", year:1998};
x=mycar.make; // возвращает Honda
myFunc(mycar); // передаёт функции объект mycar
y=mycar.make; // возвращает Toyota (prop было изменено функцией)
Функция может определяться на базе условия. Например, в данном определении функции:
if (num == 0)
{
function myFunc(theObject) {
theObject.make="Toyota"
}
}
функция myFunc определена только в том случае, если переменная num равна 0. Если num не равна 0, функция не определена, и любая попытка выполнить её потерпит неудачу.
Вы также можете определять Function-объекты, как описано в .
Метод это функция, ассоциированная с объектом. Об объектах и методах Вы можете узнать больше в
Функция может быть также определена внутри выражения. Это называется функцией выражения. Обычно такая функция безымянна/anonymous; она не должна иметь имени. Например, функция square может быть определена так:
const square = function(number) {return number * number};
Это удобно при передаче функции другой функции в качестве аргумента. В примере показана функция map, определяемая и вызываемая с анонимной функцией в качестве параметра:
function map(f,a) {
var result=new Array;
for (var i = 0; i != a.length; i++)
result[i] = f(a[i]);
return result;
}
Вызов
map(function(x) {return x * x * x}, [0, 1, 2, 5, 10];
возвращает [0, 1, 8, 125, 1000].