什么是高阶函数?

高阶函数是接收或返回其他函数的函数。它们在 JavaScript 中很常见,并且在编程中能提高代码的模块化和可复用性。

JavaScript 中等 函数式编程 函数 高阶函数

高阶函数是指能将函数作为参数或返回值的函数。这种设计思想在函数式编程中普遍存在,可以使代码更简洁灵活,关注业务逻辑而非底层实现。

什么是高阶函数?

满足以下任一条件的即为高阶函数:

  1. 以函数作为参数:该函数接收一个函数以处理其操作过程。
  2. 返回函数作为结果:该函数执行后生成并返回另一个可复用或特殊化的新函数。
    这使得“函数是一等公民” 在 JavaScript 中得以体现,便于模块化和可组合行为。

举例说明

以下示例均用 JavaScript 代码展示:

  1. 函数作为参数(常见如 map):定义一个接收函数的过滤操作逻辑:
function doubleNumbers(array, fn) {
  // map 作为高阶函数处理每个元素
  return array.map(fn);
}

const arr = [1, 2, 3];
const double = doubleNumbers(arr, num => num * 2);
console.log(double); // [2, 4, 6](注:结果基于指定函数计算)
  1. 函数作为返回值(通过闭包构造自定义行为):定义一个可复用的值调整逻辑:
function createMultiplier(multiplier) {
  // 返回一个新函数复用 multiplier
  return num => num * multiplier;
}

const timesFour = createMultiplier(4);
console.log(timesFour(5)); // 20(使用创建的函数执行)
  1. 内置高阶函数用法
// filter 方法作为高阶函数筛选数组
const evens = [1, 2, 3, 4].filter(num => num % 2 === 0);
console.log(evens); // [2, 4](结果符合判断规则)

// addEventListener 处理用户交互(典型以回调方式传递函数)
document.getElementById('button')
  .addEventListener('click', function handleClick() {
    console.log('clicked');
  });

实际开发中常见如:map、filter、reduce、Promise 等均可视为高阶函数应用,优化后利于关注数据流向(例如减少副作用)提升代码健壮性。