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

高阶函数(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 中的一个强大工具,它们让你可以抽象和复用代码逻辑,编写出更简洁、更易读的代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值