简述 JavaScript 中的高阶函数是什么?

高阶函数(Higher-Order Function)是函数式编程中的一个重要概念,它在 JavaScript 中有两个主要的定义:

  1. 如果一个函数接受一个或多个函数作为参数,那么它就是一个高阶函数。
  2. 如果一个函数返回一个函数作为结果,那么它也是一个高阶函数。

以下是一些高阶函数的例子:

  1. Array.prototype.map:这是一个高阶函数,因为它接受一个函数作为参数。
    const arr = [1, 2, 3, 4, 5];
    const squares = arr.map(x => x * x);  // [1, 4, 9, 16, 25]
    

    在这个例子中,我们传递给 map 方法的函数(x => x * x)被应用到数组的每一个元素上,然后返回一个新的数组。

  2. Array.prototype.filter:这也是一个高阶函数,因为它接受一个函数作为参数。

    const arr = [1, 2, 3, 4, 5];
    const evens = arr.filter(x => x % 2 === 0);  // [2, 4]
    

    在这个例子中,我们传递给 filter 方法的函数(x => x % 2 = 0)用于决定哪些元素应该被包含在新的数组中。

  3. 函数工厂:函数工厂是一个返回函数的函数,因此它也是一个高阶函数。

    function greaterThan(n) {
     return m => m > n;
    }
    const greaterThan10 = greaterThan(10);
    console.log(greaterThan10(11));  // 输出: true
    

    在这个例子中,greaterThan 函数接受一个参数 n,并返回一个新的函数。这个新的函数接受一个参数 m,并检查 m 是否大于 n。

高阶函数是 JavaScript 中的一个强大工具,它们让你可以抽象和复用代码逻辑,编写出更简洁、更易读的代码。

发表评论

后才能评论