函数写法:
()=>{
}
()里面放参数,当参数只有一个时,()可以省略;如果{}的表达式全部座位返回值时,{}也可省略。
例:
let events = [1,2,3,4,5];
let adds = events.map(v=>v+1);
等价于:
let events = [1,2,3,4,5];
let adds = events.map(function(v){return v+1})
箭头函数与function的主要区别在于this的绑定。
function的this是在执行时进行绑定的,而箭头函数的this是在声明时进行绑定的,这样避免了this指向不明确的问题。
最典型的例子:
var x=11;
var obj = {
x:22,
y:function(){
console.log(this.x);
}
}
console.log(obj.y);
打印出来是22,function的this在执行时绑定,绑定的是调用属性的对象,也就是obj自身的x,所以结果是22。
var x = 11;
var obj = {
x:22,
y:()=>{
console.log(this.x);
}
}
打印出来是11,因为箭头函数的this在声明时绑定,取x的值为11,所以结果是11。