📅  最后修改于: 2023-12-03 14:38:45.320000             🧑  作者: Mango
本篇文章介绍了Javascript中的高阶函数,以及如何利用高阶函数更便捷地进行函数编程。
在Javascript中,函数可以作为变量的值进行传递或者作为返回值进行返回,这种能力使得Javascript成为了一门高阶函数语言。
简言之,高阶函数就是将函数作为变量进行传递或者返回的函数。
例如下面的示例代码:
function add(a, b) {
return a + b;
}
function highOrder(func) {
return function(a, b) {
return func(a, b) * 2;
};
}
const doubleAdd = highOrder(add);
console.log(doubleAdd(1, 2)); // 输出 6
在这个例子中,我们将add
这个函数作为参数传给highOrder
函数,highOrder
返回了一个新的函数doubleAdd
,并且重写了add
函数的逻辑。在doubleAdd
函数中,我们将传入的两个参数的和乘以2作为最终返回结果。
高阶函数的应用十分广泛,尤其是在函数式编程中,常常会使用高阶函数来解决问题。
下面是一些常见的高阶函数的示例代码:
map
map
是一个常用的高阶函数,它可以对数组中的每个元素进行某个操作,并返回新数组。
const arr = [1, 2, 3];
const mappedArr = arr.map((item) => item * 2);
console.log(mappedArr); // 输出 [2, 4, 6]
reduce
reduce
也是一个常用的高阶函数,它可以对数组中的每个元素进行某个聚合操作,并返回最终结果。
const arr = [1, 2, 3];
const sum = arr.reduce((prev, curr) => prev + curr);
console.log(sum); // 输出 6
filter
filter
是用来筛选数组元素的高阶函数。
const arr = [1, 2, 3, 4, 5];
const evenArr = arr.filter((item) => item % 2 === 0);
console.log(evenArr); // 输出 [2, 4]
高阶函数是一种非常有用的Javascript特性,它可以对函数进行更高级的抽象和组合,并且让我们的代码变得更加简洁和易读。