UNPKG

web-utils-super

Version:

前端函数库

25 lines (20 loc) 760 B
/** * @desc: 函数柯里化 是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术 * @param {Function} fn * @return {Function | any} */ function curryIt(func, args) { var arity = func.length; var args = args || []; return function () { var _args = [].slice.call(arguments); [].push.apply(_args, args); // 如果参数个数小于最初的func.length,则递归调用,继续收集参数 if (_args.length < arity) { return curryIt.call(this, func, _args); } // 参数收集完毕,则执行func return func.apply(this, _args); }; } module.exports = curryIt;