函数柯里化详细说明并写出案例代码
时间: 2023-03-28 09:01:16 浏览: 124
函数柯里化是指将一个接受多个参数的函数转化为一系列接受单一参数的函数的过程。这些单一参数的函数可以被组合起来,以便于更加灵活地使用。下面是一个简单的案例代码:
```
function add(x, y, z) {
return x + y + z;
}
function curry(fn) {
return function curried(...args) {
if (args.length >= fn.length) {
return fn.apply(this, args);
} else {
return function(...args2) {
return curried.apply(this, args.concat(args2));
}
}
};
}
const curriedAdd = curry(add);
console.log(curriedAdd(1)(2)(3)); // 6
console.log(curriedAdd(1, 2)(3)); // 6
console.log(curriedAdd(1)(2, 3)); // 6
console.log(curriedAdd(1, 2, 3)); // 6
```
在这个例子中,我们定义了一个接受三个参数的函数 `add`。然后我们使用 `curry` 函数将 `add` 函数转化为一个柯里化函数 `curriedAdd`。我们可以使用 `curriedAdd` 来接受一个参数,然后返回一个新的函数,直到所有的参数都被接受完毕,最后返回结果。
阅读全文