高阶函数是函数式编程的核心概念之一,也是现代编程语言(如JavaScript、Python)中非常实用的工具。它们能够提升代码的抽象能力,让开发者更高效地处理复杂逻辑。

🧠 什么是高阶函数?

高阶函数满足以下两个条件中的任意一个:

  1. 接受函数作为参数
    • 例如:Array.prototype.map(fn) 会接收一个回调函数 fn
    • ✅ 示例:[1,2,3].map(x => x*2)
  2. 返回函数作为结果
    • 例如:function createMultiplier(factor) { return x => x * factor }
    • ✅ 示例:const double = createMultiplier(2); double(5);

🧪 高阶函数的常见用法

1. map()

  • 作用:对数组每个元素应用函数,返回新数组
  • ⚡ 示例:
    const numbers = [1, 2, 3];  
    const squared = numbers.map(num => num ** 2);  
    // 输出: [1, 4, 9]  
    
    map_reduce

2. filter()

  • 作用:筛选符合条件的元素
  • ⚡ 示例:
    const evenNumbers = numbers.filter(num => num % 2 === 0);  
    // 输出: [2]  
    

3. reduce()

  • 作用:将数组缩减为单一值
  • ⚡ 示例:
    const sum = numbers.reduce((acc, num) => acc + num, 0);  
    // 输出: 6  
    
    reduce_function

🎯 高阶函数的应用场景

  • 数据处理:简化数组操作,如转换、过滤、汇总
  • 回调函数:实现灵活的逻辑复用(如事件处理)
  • 函数组合:通过 compose()pipe() 拆分复杂流程
    const compose = (f, g) => x => f(g(x));  
    const add = x => x + 1;  
    const multiply = x => x * 2;  
    const result = compose(add, multiply)(3); // 输出: 7  
    

⚠️ 使用高阶函数的注意事项

  1. 避免过度嵌套,保持代码可读性
  2. 注意默认参数和作用域问题
  3. 理解函数副作用(如 map()forEach() 的区别)

🌐 扩展阅读

functional_programming