標籤:箭頭 class ack div this string listener for 回調
=> 可以簡化以前的回呼函數的調用,具體來說:
今後,幾乎所有的回呼函數都可用箭頭函數簡化
比如:
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) ) }
=> 應用在js回呼函數中