day01_柯里化、手写Lodash中的curry函数
柯里化
-
当一个函数有多个参数的时候先传递一部分参数调用它(这部分参数以后永远不变)
-
然后返回一个新的函数接收剩余的参数,返回结果
手写Lodash中的curry函数
function curry(fn) { return function curriedFn(...args) { if (args.length < fn.length) { return function () { return curriedFn(...args.concat(Array.from(arguments))) } } else { return fn(...args) } } } function getSum(a, b, c) { return a + b + c } const getSumCurry = curry(getSum) console.log(getSumCurry(1, 3)(2)); console.log(getSumCurry(1)(2, 3)); console.log(getSumCurry(1, 3)(2));