登录
首页 >  文章 >  前端

高阶函数是什么?JS常见高阶函数例子

时间:2026-05-14 16:50:28 216浏览 收藏

高阶函数是JavaScript中“函数作为一等公民”的核心体现——它要么接收函数作为参数,要么返回一个新函数,甚至两者兼具,从而实现逻辑复用、行为封装与流程抽象;从数组遍历(map/filter/reduce)到异步控制(Promise.then、防抖节流)、从柯里化到React高阶组件,高阶函数无处不在,掌握它不仅能写出更简洁灵活的代码,更能深入理解JS的函数式编程思想与现代前端框架的设计精髓。

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

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

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

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

  • 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 表达式或箭头函数
  • 两者满足其一,就是高阶函数;都满足,就更典型

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《高阶函数是什么?JS常见高阶函数例子》文章吧,也可关注golang学习网公众号了解相关技术文章。

资料下载
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>