关于这个主题的权威材料是最新的 ES Harmony规范草案,特别是源自箭头函数语法建议。为了方便起见,可以找到一个非官方的 HTML 版本here.
简而言之,这种新语法将使函数的定义更加简洁。 ES 规范草案包含所有细节,我将在这里非常粗略地解释。
语法是
ArrowParameters => ConciseBody
The ArrowParameters
部分定义函数采用的参数,例如:
() // no arguments
arg // single argument (special convenience syntax)
(arg) // single argument
(arg1, arg2, argN) // multiple arguments
The ConciseBody
部分定义了函数的主体。这可以按照一直定义的方式来定义,例如
{ alert('Hello!'); return 42; }
or, 在函数返回计算单个表达式的结果的特殊情况下, 像这样:
theExpression
如果这听起来相当抽象,那么这里有一个具体的例子。在当前的草案规范下,所有这些函数定义都是相同的:
var inc = function(i) { return i + 1; }
var inc = i => i + 1;
var inc = (i) => i + 1;
var inc = i => { return i + 1; };
顺便说一句,这个新语法是完全相同的greatC# 用于定义 lambda 函数的语法。