信息发布→ 登录 注册 退出

什么是高阶函数_Javascript中哪些是例子

发布时间:2025-12-22

点击量:
高阶函数是接受函数作为参数或返回函数作为结果的函数。它体现“函数可被当作值传递和生成”,常见于数组方法、定时器、防抖、柯里化及Promise链等场景,判断依据是形参含函数类型或返回函数表达式。

高阶函数是指**接受函数作为参数,或者返回函数作为结果**的函数。它不是某种特殊类型,而是对函数使用方式的一种描述——核心在于“函数可被当作值来传递和生成”。

接受函数作为参数的高阶函数

这是最常见的情形:把一个函数传进去,让它在合适时机被调用(比如遍历、过滤、转换时)。

  • Array.prototype.map():对数组每个元素执行传入的函数,返回新数组
  • Array.prototype.filter():用传入的函数判断是否保留当前元素
  • Array.prototype.reduce():用传入的累加器函数逐步合并数组值
  • Array.prototype.sort():传入比较函数决定排序逻辑
  • setTimeout() / setInterval():第一个参数就是将在未来执行的函数

返回函数的高阶函数

这类函数本身不直接做事,而是生成并返回一个新的函数,常用于配置、封装或延迟执行。

  • function createMultiplier(n) { return function(x) { return x * n; }; }:返回一个乘以 n 的函数
  • const debounce = (fn, delay) => { ... return function() { ... }; };:防抖函数,返回包装后的新函数
  • curry() 实现(如 _.curry 或手写):把多参数函数转成可分步调用的函数链

既是参数接收者又是返回者:典型工具函数

很多实用函数同时满足两个条件,体现高阶函数的灵活性。

  • Promise.then(onFulfilled, onRejected):接收回调函数,并返回新的 Promise(链式调用基础)
  • async/await 底层依赖的 Promise 处理逻辑:本质上是高阶控制流抽象
  • React 中的高阶组件(HOC):如 withRouterconnect(Redux),接收组件返回新组件(组件即函数)

自定义高阶函数的关键特征

判断自己写的函数是不是高阶函数,看两点:

  • 函数体内有没有 形参是函数类型(例如 callbacktransform
  • 函数体结尾有没有 return 一个 function 表达式或箭头函数
  • 两者满足其一,就是高阶函数;都满足,就更典型
标签:# map  # 遍历  # 是指  # 将在  # 又是  # 第一个  # 这是  # 防抖  # 累加器  # 链式  # 高阶  # transform  # prototype  # promise  # function  # react  # 形参  # 值传递  # const  # Filter  # 封装  # sort  # Array  # red  # ai  # 工具  # 回调函数  # java  # javascript  
在线客服
服务热线

服务热线

4008888355

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!