js中的函数柯里化和高阶函数

文章类型:Javascript

发布者:hp

发布时间:2023-04-20

一:函数柯里化

1:定义

函数柯里化(Currying)是将一个带有多个参数的函数转化为一系列只接收单个参数的函数。返回接受余下的参数而且返回结果的新函数

使得函数的组合变得更加灵活和可重用

2:代码

function add(num1, num2) {
return num1 + num2;
}

function curryAdd(num1) {
return function(num2) {
return num1 + num2;
}
}

const addFive = curryAdd(5);
console.log(addFive(3)); // 输出8
console.log(addFive(10)); // 输出15

3:总结

一定层度上将问题复杂化,在处理复杂问题时更灵活

柯里化是一个函数返回另一个函数,这是一个典型的闭包,它封装了一部分不变的内容,然后去处理其他可变的数据

二:高阶函数

1:定义:

高阶函数是将一个或多个函数作为参数传递或返回另一个函数的函数,是对其他函数进行操作的函数,操作可以是将它们作为参数,或者是返回它们

2:代码

function addition(x,y,z) {
return z(x) + z(y);
}
addition(-3, -4, Math.abs); // ==> Math.abs(-3) + Math.abs(-4) ==> 7

3:总结

高阶函数是一个可以接收函数作为参数,甚至返回一个函数的函数。 它就像常规函数一样,只是多了接收和返回其他函数的附加能力,即参数和输出