函数柯理化
数柯里化是把接受多个参数的函数转变成接受一个单一参数(最初函数的第一个参数),并且返回接受余下的参数而且返回结果的新函数的技术
代码
// 函数柯理化
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