柯里化 声明一个add(1)(2)(3)(4)结果为10怎么写代码
时间: 2024-09-26 16:15:22 浏览: 20
柯里化是一种函数式编程技术,它将接受多个参数的函数转换为一系列只接受单个参数的函数序列。在JavaScript中,你可以通过递归的方式来实现这个例子。这里是一个简单的柯里化版本的加法函数:
```javascript
function curryAdd(n) {
return function add(x) {
if (x === undefined) {
return n;
} else {
return add.bind(null, x); // 使用bind绑定当前值,然后返回新的add函数
}
};
}
// 创建一个加5的函数
const addFive = curryAdd(5);
// 将它应用到其他数字上
let result = addFive(1);
result = result(2);
result = result(3);
result = result(4);
console.log(result()); // 输出:10
```
在这个代码中,`curryAdd`函数接收一个初始参数n,每次传入一个新参数x,都会创建一个新的函数并将x作为内部状态。当所有参数传递完毕后,最终调用返回的结果就是之前所有参数相加的总和。