Вирази-замикання

Non-standard
This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

Obsolete since Gecko 60 (Firefox 60 / Thunderbird 60 / SeaMonkey 2.57)
This feature is obsolete. Although it may still work in some browsers, its use is discouraged since it could be removed at any time. Try to avoid using it.

Нестандартний. Не використовуйте!
Синтаксис виразів-замикань є нерекомендованою особливою функціональністю Firefox, він був прибраний, починаючи з Firefox 60. Для використання у майбутньому розгляньте стрілкові функції.

Вирази-замикання - це скорочений синтаксис для написання простих функцій.

Синтаксис

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');

Сумісність з веб-переглядачами

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
Expression closures
DeprecatedNon-standard
Chrome No support NoEdge No support NoFirefox No support 3 — 60IE No support NoOpera No support NoSafari No support NoWebView Android No support NoChrome Android No support NoFirefox Android No support 4 — 60Opera Android No support NoSafari iOS No support NoSamsung Internet Android No support Nonodejs No support No

Legend

No support  
No support
Non-standard. Expect poor cross-browser support.
Non-standard. Expect poor cross-browser support.
Deprecated. Not for use in new websites.
Deprecated. Not for use in new websites.

Див. також