【23.5.5】高阶函数

32 阅读1分钟

定义:

函数的参数可以是函数,或返回值是函数的函数就是高阶函数,比如回调函数装饰器

示例

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))