在JavaScript中,柯里化(Currying)和偏函数(Partial Function)是函数式编程的两个重要概念。它们通过改造函数的参数处理方式,使代码更加灵活和可复用。在深入了解这两个概念之前,首先需要理解高阶函数的概念,因为柯里化和偏函数都是高阶函数的应用。
什么是柯里化(Currying)?
柯里化是一种将接受多个参数的函数转换为一系列接受单一参数的函数的技术。换句话说,柯里化后的函数不会一次性接受所有参数,而是逐个接受,直到所有参数都被传入后,函数才会执行。
语法与实现
function curry(func) {
return function curried(...args) {
if (args.length >= func.length) {
return func.apply(this, args);
}
else {
return function(...args2) {
return curried.apply(this, args.concat(args2));
};
}
};
}
‘curry‘函数将一个普通函数‘func‘转化为柯里化函数。如果传入的参数数量达到或超过‘func‘所需的参数数量,函数立即执行;否则,返回一个新的函数,等待更多的参数传入。
示例
function add(a, b) {
return a +