定义:ES6中新增的使用符号=>来定义的简单函数
如:
x=>x+1
等于:
function(x){
return x+1;
}
如果没有参数或多个参数,需要使用()
(a,b)=>a+b
如果函数体有多条语句,需要使用{},此时,返回值需要使用return
(a,b)=>{
return a+b;
}
好处
- 使用简洁,不需要写function等,结构清晰;
- 这种函数没有自己的this,直接将外部的this传入,如:
var foo = {
arr:[1,2,3],
sum:0,
testA:function(){
this.arr.forEach(function(x){
this.sum += x;//这里的this指向的不是foo
});
alert(this.sum);//0
},
testB:function(){
this.arr.forEach(x => this.sum+=x);//this指向的是foo
alert(this.sum);//6
}
};
foo.testA();
foo.testB();