高阶函数(Higher-Order Function)是函数式编程中的一个重要概念,它在 JavaScript 中有两个主要的定义:
如果一个函数接受一个或多个函数作为参数,那么它就是一个高阶函数。
如果一个函数返回一个函数作为结果,那么它也是一个高阶函数。
以下是一些高阶函数的例子:
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)被应用到数组的每一个元素上,然后返回一个新的数组。
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)用于决定哪些元素应该被包含在新的数组中。
函数工厂:函数工厂是一个返回函数的函数,因此它也是一个高阶函数。
function greaterThan(n) {
return m => m > n;
}
const greaterThan10 = greaterThan(10);
console.log(greaterThan10(11)); // 输出: true
在这个例子中,greaterThan 函数接受一个参数 n,并返回一个新的函数。这个新的函数接受一个参数 m,并检查 m 是否大于 n。
高阶函数是 JavaScript 中的一个强大工具,它们让你可以抽象和复用代码逻辑,编写出更简洁、更易读的代码。