1、限定参数个数
const curry = (fn) => {
return (judge = function () {
if (fn.length === arguments.length) {
return fn(...arguments);
} else {
return (...rest) => judge(...arguments, ...rest);
}
});
};
function add(a, b, c) {
return a + b + c;
}
const newAdd = curry(add);
console.log(newAdd(1)(2, 3));
2、不限参数个数
var add = function (x) {
var sum = 1;
var tmp = function (x) {
sum = sum + (x || 0);
return tmp;
};
tmp.valueOf = function () {
return sum;
};
return tmp;
};
console.log(add(1)(2)(3)(4)()(1) == 11);
网友评论