手写普通函数转化为柯里化函数

function whCurrying(fn) {
	return function curried(...args1) {
		if (args1.length >= fn.length) {
			return fn.apply(this, args1);
		} else {
			return function curried2(...args2) {
				// return curried.apply(this, [...args1, ...args2]);
				return curried.apply(this, args1.concat(args2));
			};
		}
	};
}

function sum(num1, num2, num3) {
	return num1 + num2 + num3;
}

let fn = whCurrying(sum);

console.log(fn(1)(2)(3)); //6
posted @ 2021-11-18 08:58  Wayhome'  阅读(44)  评论(0编辑  收藏  举报
// 侧边栏目录 // https://blog-static.cnblogs.com/files/douzujun/marvin.nav.my1502.css