Expression closures

非标准,不要使用!
闭包表达式语法是废弃的 SpiderMonkey 的特性,并且 将被移除。为了长远使用,考虑使用 箭头函数

表达式闭包是定义简单函数的一种便捷方式。

语法

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

参数

name
函数名。函数名可以省略不写,称为匿名函数。函数名仅在函数体有效。
paramN
形参名。一个函数最多可以有255个参数。
expression
构成函数体的表达式。

描述

这一附加特性只是编写简单函数的快捷方式,让语言更类似通常的 Lambda 标记

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
Desktop Mobile Server
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet Node.js
Expression closures
Deprecated Non-standard
Chrome No support No Edge No support No Firefox No support 3 — 60 IE No support No Opera No support No Safari No support No WebView Android No support No Chrome Android No support No Firefox Android No support 4 — 60 Opera Android No support No Safari iOS No support No Samsung Internet Android No support No nodejs 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.

相关链接