JS----箭頭函式
阿新 • • 發佈:2018-11-09
箭頭函式相當於其他語言的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本身
箭頭函式不允許在形參列表和箭頭之間換行,否則報語法錯誤
箭頭函式與其他運算子在一起時, 可能由於解析順序導致錯誤, 因而與其他運算子在一起時應該把箭頭函式整體放在圓括號裡
箭頭函式的引入有兩個方面的作用:
-
更簡短的函式書寫,
-
對 this的詞法解析。