1. 程式人生 > >JS----箭頭函式

JS----箭頭函式

箭頭函式相當於其他語言的Lambda表示式或閉包語法, 是一種對普通函式的簡化寫法

語法格式如下:

(param1,param2,...,paramN)=> { statements }

相當於如下函式:

function (param1,param2,...,paramN) {
    statements ;
}

省略方式: 

  • 如果執行體只有一條return語句, 允許省略return關鍵詞和花括號:
(param1,param2,...,paramN)=> result;
//等同於:
//(param1,param2,...,paramN)=>{return result;}
  • 如果形參列表只有一個引數, 允許省略圓括號
  • 如果不需要形參,圓括號不能省略,必須寫空括號()

注意:

箭頭函式與普通函式並不完全相等, 箭頭函式並沒有自己的this關鍵字,

對於普通函式的this指建立的物件, 直接呼叫的普通函式this代表window

那箭頭函式中的this指的是誰呢?

箭頭函式的this指的是上下文, 也就是包含箭頭函式的外層函式, 如果箭頭函式定義在全域性範圍內this指window本身

箭頭函式不允許在形參列表和箭頭之間換行,否則報語法錯誤

箭頭函式與其他運算子在一起時, 可能由於解析順序導致錯誤, 因而與其他運算子在一起時應該把箭頭函式整體放在圓括號裡

 

箭頭函式的引入有兩個方面的作用:

  1. 更簡短的函式書寫,

  2. 對 this的詞法解析。