js 函数柯里化 实现

167 阅读1分钟

函数柯理化

数柯里化是把接受多个参数的函数转变成接受一个单一参数(最初函数的第一个参数),并且返回接受余下的参数而且返回结果的新函数的技术

代码

// 函数柯理化
function curry(fn, ...args) {
    const array = args || [];
    return function fnc(...argFnc) {
        if (argFnc.length === 0) {
            return fn.apply(null, array);
        } else {
            array.push(...argFnc);
            return fnc;
        }
    };
}

调用实例

function tem(...args) {
    return args.reduce((total, val) => total + val);
}

const sumFn = curry(tem);

const data = sumFn(1)(2)(3)()

console.log(data)//6