函數(shù)是Java的基礎(chǔ)語法,關(guān)于函數(shù)的分類可以分為多種,各類函數(shù)之間的區(qū)別也成為大多數(shù)小白的疑難點(diǎn)。其中普通函數(shù)和箭頭函數(shù)之間的區(qū)別又成為Java語法中難點(diǎn)之重。
箭頭函數(shù)相當(dāng)于匿名函數(shù),是普通函數(shù)的簡寫,并且簡化了函數(shù)定義。箭頭函數(shù)有兩種格式,一種只包含一個(gè)表達(dá)式,連{ ... }和return都省略掉了。還有一種可以包含多條語句,這時(shí)候就不能省略{ ... }和return。
1.箭頭函數(shù)是匿名函數(shù),不能作為構(gòu)造函數(shù),不能使用new
2.箭頭函數(shù)不綁定arguments,取而代之需要用展開運(yùn)算符解決
3.箭頭函數(shù)不綁定this,會捕獲其所在的上下文的this值,作為自己的this值
4.箭頭函數(shù)通過 call() 或 apply() 方法調(diào)用一個(gè)函數(shù)時(shí),只傳入了一個(gè)參數(shù),對 this 并沒有影響。
5.箭頭函數(shù)沒有原型屬性
正確區(qū)別普通和箭頭函數(shù)之間的區(qū)別可以有效幫助特定需求選擇正確的Java語法,高效進(jìn)行編程工作。