函数柯里化

62 阅读1分钟

 JS 函数柯里化利用闭包递归进行处理

function add() {
    let collectArray = [...arguments]
    let calc = function() {
        collectArray.push(...arguments);        
        return calc;    
    };

    // 利用 toString 隐式转换
    calc.toString = function () {        
        return collectArray.reduce(function (a, b) {
            return a + b;
        });
    };
    return calc;
};

add(1)(2)(3)(4) == 10