高階函數英文叫Higher-order function。那么什么是高階函數?
JavaScript的函數其實都指向某個變量。既然變量可以指向函數,函數的參數能接收變量,那么一個函數就可以接收另一個函數作為參數,這種函數就稱之為高階函數。
一個最簡單的高階函數:
function add(x, y, f) { return f(x) + f(y);}
當我們調用add(-5, 6, Math.abs)
時,參數x
,y
和f
分別接收-5
,6
和函數Math.abs
,根據函數定義,我們可以推導計算過程為:
x = -5;y = 6;f = Math.abs;f(x) + f(y) ==> Math.abs(-5) + Math.abs(6) ==> 11;return 11;
用代碼驗證一下:
add(-5, 6, Math.abs); // 11
編寫高階函數,就是讓函數的參數能夠接收別的函數。
新聞熱點
疑難解答