高阶函数是函数式编程的核心概念之一,也是现代编程语言(如JavaScript、Python)中非常实用的工具。它们能够提升代码的抽象能力,让开发者更高效地处理复杂逻辑。
🧠 什么是高阶函数?
高阶函数满足以下两个条件中的任意一个:
- 接受函数作为参数
- 例如:
Array.prototype.map(fn)
会接收一个回调函数fn
- ✅ 示例:
[1,2,3].map(x => x*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]
2. filter()
- 作用:筛选符合条件的元素
- ⚡ 示例:
const evenNumbers = numbers.filter(num => num % 2 === 0); // 输出: [2]
3. reduce()
- 作用:将数组缩减为单一值
- ⚡ 示例:
const sum = numbers.reduce((acc, num) => acc + num, 0); // 输出: 6
🎯 高阶函数的应用场景
- 数据处理:简化数组操作,如转换、过滤、汇总
- 回调函数:实现灵活的逻辑复用(如事件处理)
- 函数组合:通过
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
⚠️ 使用高阶函数的注意事项
- 避免过度嵌套,保持代码可读性
- 注意默认参数和作用域问题
- 理解函数副作用(如
map()
与forEach()
的区别)