箭头函数表达式的语法比函数表达式更短,并且不绑定自己的this,arguments,super或 new.target。这些函数表达式最适合用于非方法函数,并且它们不能用作构造函数。
使用剪头函数不需要敲完整的 function 关键字, 同时如果只有行 return 语句的函数,还可以进一步简写:
{
let arrow = v => v*2; //arrow是函数名,v是参数,箭头>后边的是函数返回值。
}
相当于:
function (v) {
return v * 2;
}
{
let arrow = () => 5; //arrow是函数名,没有参数时用圆括号表示,箭头>后边的是函数返回值。
}
相当于:
function () {
return 5;
}
上面的,只包含一个表达式,连
{ ... }
和
return
都省略掉了。还有一种可以包含多条语句,这时候就不能省略
{ ... }
和
return
:
x => {
if (x > 0) {
return x * x;
}
else {
return - x * x;
}
}
如果参数不是一个,就需要用括号()
括起来:
// 两个参数:
(x, y) => x * x + y * y
// 无参数:
() => 3.14
// 可变参数:
(x, y, ...rest) => {
var i, sum = x + y;
for (i=0; i<rest.length; i++) {
sum += rest[i];
}
return sum;
}
x => ({ foo: x })