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