函数柯理化之递归封装
Posted web半晨
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数柯理化之递归封装相关的知识,希望对你有一定的参考价值。
// 支持多参数传递
function progressCurrying(fn, args) {
let that = this;
let len = fn.length;
let args = args || [];
return function() {
let _args = Array.prototype.slice.call(arguments);
Array.prototype.push.apply(args, _args);
// 如果参数个数小于最初的fn.length,则递归调用,继续收集参数
if (_args.length < len) {
return progressCurrying.call(that, fn, _args);
};
// 参数收集完毕,则执行 fn
return fn.apply(this, _args);
};
};
其实是在初步的基础上,加上了递归的调用,只要参数个数小于最初的 fn.length,就会继续执行递归。
以上是关于函数柯理化之递归封装的主要内容,如果未能解决你的问题,请参考以下文章