ES6中的箭頭函數(shù)和平時(shí)使用的函數(shù)的區(qū)別
-
this
大部分人都知道是this不在動(dòng)態(tài)綁定了扛门,而是在寫箭頭函數(shù)的時(shí)候就定義好了 -
返回值
關(guān)于這個(gè)問題的出現(xiàn),是因?yàn)榭吹揭恍╆P(guān)于箭頭函數(shù)的應(yīng)用
首先來猜下一下會(huì)console什么出來
let fn1 = function (a, b) {
a + b
}
let fn2 = function (a, b) {
return a + b
}
let fn3 = (a, b) => a + b
let fn4 = (a, b) => { a + b }
let fn5 = (a, b) => {return a + b}
fn1(1, 2)
fn2(1, 2)
fn3(1, 2)
fn4(1, 2)
fn5(1, 2)
結(jié)果 undefined/ 3/ 3/ undefined/ 3
實(shí)驗(yàn)證明纵寝,在不添加大括號(hào)的時(shí)候箭頭函數(shù)會(huì)默認(rèn)return語句论寨,加了大括號(hào)就正常,所以fn4和fn1一樣顯示undefined
應(yīng)用
- 連續(xù)的箭頭函數(shù)使用
let fn = (x) => (y) => x+y
fn(1) // y=>x+y
fn(2) // 3
- 偏函數(shù)
偏應(yīng)用一個(gè)函數(shù)意思是通過預(yù)先填充原始函數(shù)的部分(不是全部)參數(shù)來創(chuàng)建一個(gè)新函數(shù)。
let fn = (x) => (y) => x+y
let firstFn = fn(1) // 先填充一部分
firstFn(2) // 3 在補(bǔ)充后計(jì)算
還有很多很多應(yīng)用葬凳,這里主要是想說明箭頭函數(shù)返回的值绰垂,尤其是在連續(xù)使用箭頭函數(shù)的情況下不被嚇到。