Please note, this is a STATIC archive of website developer.mozilla.org from November 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

function expression

Общая информация

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

Смотрите также

Метки документа и участники

 Внесли вклад в эту страницу: SphinxKnight, teoli, AlexyAV
 Обновлялась последний раз: SphinxKnight,