箭頭函數(shù)
=>
,看起來像一只'肥箭頭',相比之下,傳統(tǒng)箭頭->
則顯得較為細長。許多程序員可能已經(jīng)在其他語言(如Haskell)中見過這種類型的函數(shù),被稱為'lambda表達式'或'匿名函數(shù)'。之所以稱之為匿名,是因為這些箭頭函數(shù)并沒有描述性的函數(shù)名稱。
以下簡稱箭頭函數(shù)
箭頭函數(shù)有哪些優(yōu)點?
語法簡潔:不再需要重復(fù)書寫
function
關(guān)鍵字,有效減少了代碼行數(shù)語義明晰:能夠從周圍上下文捕獲
this
關(guān)鍵字的引用
簡單語法示例
(x,y) => x+y
,必須要用到括號。這樣做可以避免在不同使用場景下忘記添加括號。但以上面的代碼為例,它也可以寫成這樣:x => x*x
。至此,我們看到的改進主要體現(xiàn)在語法層面,能夠有效減少代碼行數(shù)并提高代碼的可讀性。
對this
的詞法綁定
使用箭頭函數(shù)還有另一個好處。那就是處理this
上下文的問題。使用箭頭函數(shù),你不再需要考慮.bind(this)
或設(shè)置that = this
,因為箭頭函數(shù)會從詞法環(huán)境中獲取this
可以在MDN網(wǎng)站找到更多關(guān)于箭頭函數(shù)的信息
標(biāo)簽: