箭头函数没有自己的 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
