本文最后更新于:2023年3月19日 晚上
普通
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| function add(num1) { let res = num1; function sum(num2) { if (num2) { res += num2; return sum; } } sum.toString = function () { return res; }; sum.done = function () { return res; };
return sum; }
console.log(add(1)(2)); console.log(add(1)(2).done());
|
科里化
科里化实现无限,add(1,2)(3,4,5)(6)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| function add(...args1) { let res = [...args1];
function sum(...args2) { if ([...args2].length > 0) { res = [...args1, ...args2]; return sum; } } sum.toString = function () { return res.reduce((a, b) => a + b); }; sum.done = function () { return res.reduce((a, b) => a + b); };
return sum; }
console.log(add(1)(2, 3, 4, 5));
|