函數(shù)寫(xiě)法:
()=>{
}
()里面放參數(shù),當(dāng)參數(shù)只有一個(gè)時(shí),()可以省略;如果{}的表達(dá)式全部座位返回值時(shí),{}也可省略。
例:
let events = [1,2,3,4,5];
let adds = events.map(v=>v+1);
等價(jià)于:
let events = [1,2,3,4,5];
let adds = events.map(function(v){return v+1})
箭頭函數(shù)與function的主要區(qū)別在于this的綁定。
function的this是在執(zhí)行時(shí)進(jìn)行綁定的,而箭頭函數(shù)的this是在聲明時(shí)進(jìn)行綁定的,這樣避免了this指向不明確的問(wèn)題。
最典型的例子:
var x=11;
var obj = {
x:22,
y:function(){
console.log(this.x);
}
}
console.log(obj.y);
打印出來(lái)是22,function的this在執(zhí)行時(shí)綁定,綁定的是調(diào)用屬性的對(duì)象,也就是obj自身的x,所以結(jié)果是22。
var x = 11;
var obj = {
x:22,
y:()=>{
console.log(this.x);
}
}
打印出來(lái)是11,因?yàn)榧^函數(shù)的this在聲明時(shí)綁定,取x的值為11,所以結(jié)果是11。