是指「接受或是回傳函式」的函式
換句話就是符合下列其中一項就算是高階函數
/*
* hi() & hey() 為高階函數
* inner() 為普通函數
*/
function hi(a) {
a()()
}
function hey() {
function inner() {
console.log('inner!!')
}
return inner
}
hi(hey)
JavaScript 中很常使用到的一些內建方法其實就是高階函式,其中最常見的有 map()、filter()...等用來處理 Array 的函數
const numbers = [1, 2, 3, 4, 5];
// 使用高階函數 map
const doubled = numbers.map(function (num) {
return num * 2;
});
console.log(doubled); // [2, 4, 6, 8, 10]
又稱為回調、回叫函式,是一種作為參數傳遞給另一個函數的函數,它會在該函數執行完畢後才被執行。
btn.addEventListner("click", function(){
console.log("click!!")
})
以上面那段程式碼來看
addEventListener 就是一個高階函數,因為他用了一個 function 當作參數
而作為參數的 function() { console.log("click!!") } 就是一個回呼函數