高阶函数是接收函数为参数或返回函数的函数,如map、filter、reduce、sort等数组方法,以及setTimeout、addEventListener等;它提升代码复用性与可读性,支持函数式编程。
JavaScript 高阶函数是指**接收函数作为参数**,或者**返回函数作为结果**的函数。它不是某种特殊语法,而是对函数使用方式的描述——因为 JS 中函数是一等公民,可以像数值、字符串一样被传递和返回。
满足以下任一条件即为高阶函数:
这些都定义在 Array.prototype 上,是最常被使用的高
阶函数:
[1,2,3].map(x => x * 2) → [2,4,6]
[1,2,3,4].filter(x => x % 2 === 0) → [2,4]
[1,2,3].reduce((a,b) => a + b, 0) → 6
[3,1,2].sort((a,b) => a - b) → [1,2,3]
高阶函数不局限于数组,还包括:
function once(fn) { let called = false; return function(...args) { if (!called) { called = true; return fn(...args); } }; }
它让代码更专注“做什么”,而不是“怎么做”: