高阶函数是接受函数为参数或返回函数的函数,体现函数式编程思想;如map、filter、reduce等内置方法及节流、HOC、useCallback等均属其应用。
高阶函数是指接受函数作为参数,或者返回函数作为结果的函数。它不是某个特定函数,而是一种函数设计模式,是函数式编程的核心思想之一。
一个函数只要满足以下任一条件,就是高阶函数:
注意:JavaScript 中函数是一等公民,可以赋值给变量、作为参数传递、从函数中返回,这为高阶函数提供了语言基础。
数组方法是最常接触的高阶函数,它们让数据处理更声明式、更可读:
users.map(u => u.name)
orders.filter(o => o.status === 'active')
cart.reduce((sum, item) => sum + item.price * item.qty,
0)
这些方法不修改原数组,符合不可变原则,便于调试和测试。
当多个地方需要相似逻辑时,可抽象为高阶函数:
例如节流函数:const throttledSave = throttle(saveToServer, 300),后续调用 throttledSave() 就自动具备节流能力。
在 React 开发中,高阶函数自然融入组件逻辑:
useCallback 接收函数并返回记忆化版本const handleClick = (id) => () => deleteItem(id)
这种写法避免重复绑定、减少子组件不必要的重渲染。