学习于阮一峰老师https://es6.ruanyifeng.com/#docs/function
ES6允许使用箭头“=>” 定义 函数
var foo = v => v;
//类似于
var foo = function (v){
return v;
}
如果箭头函数没有参数或者有多个参数就用圆括号包起来
var foo = ()=> 'hello'
相当于
var foo = function (){
return 'hello'
};
多个参数
var foo = (x,y)=>x+y
相当于
var foo = function (x,y){
return x+y;
}
可以看出当函数体内只有一条语句的时候,箭头函数是可以省略return ;但当有多条语句时,就要使用大括号将它们括起来,并且使用return语句返回。
var foo = (x,y)=>{
if(x>y) return x;
}
箭头函数可以简化回调函数
正常写法
[2,4,3,1,5].sort(function (a,b){
return a-b
})
箭头函数写法
[2,4,3,1,5].sort((a,b)=>a-b)
使用注意点
箭头函数使用需要注意一下几点
(1)函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象。
(2)不可以当作构造函数,也就是说,不可以使用new命令,否则会抛出一个错误。
(3)不可以使用arguments对象,该对象在函数体内不存在。如果要用,可以用 rest 参数代替。
(4)不可以使用yield命令,因此箭头函数不能用作 Generator 函数。