function currying (fn, length) {
length = length || fn.length;
return function (...args) {
if (length <= args.length) {
return fn(...args);
} else {
return currying(fn.bind(this, ...args), length - args.length);
}
}
}
function test(a, b, v) {
return a + b + v;
}
const curryingAdd = currying(test);
console.log('2222', curryingAdd(1, 3)(2));
const func = test.bind(this, 2, 3);
console.log('333', func(4));