BFE.devAI解答 - JavaScript 代码题
1. 实现curry()
实现curry()的代码如下:
const curry = (fn) => { return function curried(...args) { if (args.length >= fn.length) { return fn.apply(this, args); } else { return function (...newArgs) { return curried.apply(this, args.concat(newArgs)); }; } };};
该函数使用了递归调用,当传入的参数个数大于或等于原函数的参数个数时,直接调用原函数并返回结果;否则,返回一个新的function,继续等待后续参数的传入。