定义:
函数的参数可以是函数,或返回值是函数的函数就是高阶函数,比如回调函数、装饰器
示例
map函数,filter函数,forEach函数,reduce函数等
闭包:
函数内部定义的函数,可以访问外部函数的变量,并且在外部函数结束调用后继续调用该外部函数的变量。
装饰器:
在不修改原函数代码的情况下为函数添加新的功能
例子:
// +1 函数
function add1(num) { return num + 1 }
// *3函数
function mult3(num) { return num * 3 }
// /2函数
function divide2(num) { return num / 2 }
function arrCompute(arr, compute) {
const newArr = []
for(let i=0; i<arr.length; i++) { // 变化的算式以函数的形式传入
newArr.push(compute(arr[i]))
}
return newArr
}
// 输出 [2, 3, 4]
console.log(arrCompute([1,2,3], add1)) // 输出 [3, 6, 9]
console.log(arrCompute([1,2,3], mult3)) // 输出 [1, 2, 3]
console.log(arrCompute([2,4,6], divide2))