currying 加法 發表於 2021-12-06 更新於 2024-10-23 分類於 frontend Disqus: 文章字數: 118 所需閱讀時間 ≈ 1 分鐘 问题一个支持 任意多参数,可以柯里化的加法函数 思路直接返回函数 保留已传内容的加和 toString 支持输出值 实现12345678910function add() { const createF = (v) => { const b = function () { return createF(v + [...arguments].reduce((s, cur) => s + cur, 0)); }; b.toString = () => v; return b; }; return createF([...arguments].reduce((s, cur) => s + cur, 0));} 使用123456789console.log(+add(1));console.log(+add(1, 2));console.log(+add(1, 2)(3));console.log(+add(1, 2)(3)(4));const x = add(5);console.log(+x(6));console.log(+x(7)(8));const y = x(9)(9, 10);console.log(+y());