Общая информация
Конструкция 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 | (Да) | (Да) | (Да) | (Да) | (Да) | (Да) |