箭头函数没有自己的 this, argunment, super 或 new.target,适用于需要匿名函数的地方,不能用作构造函数
sum = (a, b) => a + b
换行
在参数与箭头之间不能换行,可在箭头后换行,或用 ()
{}
来换行
var func = ()
=> 1;
// SyntaxError: expected expression, got '=>'
var func = (a, b, c) =>
1;
var func = (a, b, c) => (
1
);
var func = (a, b, c) => {
return 1
};
this
箭头函数不会创建自己的 this , 它从自己的作用域链的上一层继承this
function Person(){
this.age = 0;
setInterval(() => {
this.age++; // |this| 正确地指向 p 实例
}, 1000);
}
var p = new Person();
递归
const fact = x => (x === 0 ? 1 : x * fact(x-1));
fact(5); // 120