The expression closure syntax is a deprecated SpiderMonkey-specific feature and will be removed. For future-facing usages, consider using arrow functions.
Expression closures are a shorthand function syntax for writing simple functions.
Syntax
function [name]([param1[, param2[, ..., paramN]]]) expression
Parameters
name
- The function name. Can be omitted, in which case the function is anonymous. The name is only local to the function body.
paramN
- The name of an argument to be passed to the function. A function can have up to 255 arguments.
expression
- The expression which comprise the body of the function.
Description
This addition is nothing more than a shorthand for writing simple functions, giving the language something similar to a typical Lambda notation.
JavaScript 1.7 and older:
function(x) { return x * x; }
JavaScript 1.8:
function(x) x * x
This syntax allows you to leave off the braces and 'return' statement - making them implicit. There is no added benefit to writing code in this manner, other than having it be syntactically shorter.
Examples
A shorthand for binding event listeners:
document.addEventListener('click', function() false, true);
Using this notation with some of the array functions from JavaScript 1.6:
elems.some(function(elem) elem.type == 'text');
Browser compatibility
Feature | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic support | No | No | Yes | No | No | No |
Feature | Android webview | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
Basic support | No | No | No | Yes | No | No | No |