Общая информация
Конструкция function используется для определения функции внутри выражения.
Синтаксис
function [name]([param1[, param2[, ..., paramN]]]) {
statements
}
Параметры
-
name - Имя функции. Может быть опущено, в случаях, когда функция является анонимной. Имя функции является локальным для тела функции.
-
paramN - Имя аргумента переданного в функцию. Функция может иметь до 255 аргументов.
-
statements - Тело функции.
Описание
function expression очень похоже и имеет почти такой же синтаксис, как и function statement (см. function statement). Основное отличие между function expression и function statement - имя функции, которое может быть не указано в случае function expressions для создания анонимных функций. Смотрите так же функции и область видимости.
Примеры
Следующий пример демонстрирует создание безымянной (анонимной) функции и присвоение её переменной x. Функция возвращает квадрат переданного значения:
var x = function(y) {
return y * y;
};
Именованные function expression
Если вы хотите ссылаться на текущую функцию внутри тела этой функции, вы должны создать именованую function expression. Это имя становится локальным для тела функции (области видимости функции). А также позволяет избежать использования нестандартного свойства arguments.callee.
var math = {
'factorial': function factorial(n) {
if (n <= 1)
return 1;
return n * factorial(n - 1);
}
};
Спецификация
| Спецификация | Статус | Комментарий |
|---|---|---|
| ECMAScript 3rd Edition. | Standard | Initial definition. Implemented in JavaScript 1.5 |
| ECMAScript 5.1 (ECMA-262) Определение 'Function definition' в этой спецификации. |
Стандарт | |
| ECMAScript 6 (ECMA-262) Определение 'Function definitions' в этой спецификации. |
Кандидат в рекомендации |
Совместимость с браузерами
| Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| Basic support | (Да) | (Да) | (Да) | (Да) | (Да) |
| Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| Basic support | (Да) | (Да) | (Да) | (Да) | (Да) | (Да) |