=> 可以简化以前的回调函数的调用,具体来说:
今后,几乎所有的回调函数都可用箭头函数简化
比如:
1. 所有回调函数都可: 去function改=>
2. 如果函数体只有一句话: 可省略{}
如果这一句话还是return,可省略return
3. 如果只有一个参数: 可省略()
但是,如果没有参数,必须保留空()
更大用途: 箭头函数内外共用同一个this——取代bind
特殊: 如果不希望内外共用this,就不能用箭头函数
比如事件处理函数:
elem.addEventListener("click",function(){this->elem})
elem.addEventListener("click",()=>{ this->不是elem})
变通解决:
elem.addEventListener("click",e=>{ e.target->elem})
var arr=[12,2,123,23,1,3]; //arr.sort(function(a,b){return a-b;}) arr.sort((a,b)=>a-b); console.log(String(arr)); var newArr=arr.map(val=>val*2); console.log(String(newArr)); var bob={ sname:"Bob", friends:[ "Jack","Rose","Tom","Jerry"], intr(){ //this->bob this.friends.forEach( val=>console.log( this.sname+" 认识 "+val) ); } } bob.intr(); var btns=document.getElementsByTagName("button"); //this->window for(var i= 0,len=btns.length;i<len;i++){ btns[i].addEventListener("click", //()=>alert(this.innerHTML)//错误 e=>alert(e.target.innerHTML) ) }
时间: 2024-11-11 04:34:06