--- title: Expression closures slug: Web/JavaScript/Reference/Operators/Expression_closures tags: - Нестандартная - Функции translation_of: Archive/Web/JavaScript/Expression_closures ---
Не является стандартом. Не используйте данный синтаксис!
Синтаксис замкнутого выражения является устаревшей возможностью SpiderMonkey и будет удален. Используйте вместо него стрелочные функции.
{{jsSidebar("Operators")}}

Замкнутые выражения – это синтаксис для удобной записи коротких и простых функций.

Синтаксис

function [name]([param1[, param2[, ..., paramN]]])
   expression

Параметры

name
Имя функции. Может быть пропущено, в таком случае функция будет являться анонимной. Имя функции доступно только в теле функции.
paramN
Имя аргумента, передаваемого функции. Всего может быть передано вплоть до 255 аргументов.
expression
Выражение, содержащее тело функции.

Описание

Этот функционал – ничто иное как короткая нотация для записи простых функций. Он призван добавить в язык нечто похожее на Лямбда-исчисления.

JavaScript 1.7 и старше:

function(x) { return x * x; }

JavaScript 1.8:

function(x) x * x

Такой синтаксис позволяет отбросить фигурные скобки и оператор return. Данный подход, кроме краткости записи, иных преимуществ не имеет.

Примеры использования

Короткая запись для привязки слушателей событий:

 document.addEventListener("click", function() false, true);

Использование такой записи для работы с функциями массивов из JavaScript 1.6:

elems.some(function(elem) elem.type == "text");

Таблица совместимости

{{CompatibilityTable}}

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support {{CompatNo}} {{CompatVersionUnknown}} {{CompatNo}} {{CompatNo}} {{CompatNo}}
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support {{CompatNo}} {{CompatNo}} {{CompatVersionUnknown}} {{CompatNo}} {{CompatNo}} {{CompatNo}}

 

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