1. 程式人生 > 實用技巧 >箭頭函式

箭頭函式

箭頭函式

參考:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Functions/Arrow_functions

箭頭函式表示式的語法比函式表示式更簡潔,並且沒有自己的this, arguments, super或new.target

箭頭函式表示式更適用於那些本來需要匿名函式的地方,並且它不能用作建構函式

一個基本示例:

const materials = [
    'Hydrogen',
    'Helium',
    'Lithium',
    'Beryllium'
]

console.log(materials.map(material 
=> material.length));

當只有一個引數時,圓括號是可選的

(singleParam) => { statements }

singleParam => { statements }

沒有引數的函式贏寫成一對圓括號

() => { statements }

高階語法

加括號的函式體返回物件字面量表達式

params => ({foo: bar})

支援剩餘引數和預設引數

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

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

支援引數列表解構

let f = ([a, b] = [1, 2], {x: c} = {x: a + b}) => a + b + c;
f(); // 6

引入箭頭函式有兩個方面的作用:更簡短的函式並且不繫結this

沒有單獨的this

在箭頭函數出現之前,每一個新函式根據它是如何被呼叫的來定義這個函式的this值:

如果該函式是一個建構函式,this指標指向一個新的物件。

在嚴格模式下的函式呼叫時,this指向undefined

如果該函式是一個物件的方法,則它的this指標指向這個物件

This被證明是令人厭煩的面向物件風格的程式設計