表达式闭包是定义简单函数的一种便捷方式。
语法
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");
浏览器兼容
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out
https://github.com/mdn/browser-compat-data and send us a pull request.
Update compatibility data on GitHub
Desktop | Mobile | Server | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Expression closures | 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.