lodash 中的柯里化函数

2021-03-22  本文已影响0人  KK_boy
_.curry()
const _ = require('lodash') 
// 要柯里化的函数
function getSum (a, b, c) {
  return a + b + c
}
// 柯里化后的函数
let curried = _.curry(getSum) // 测试
curried(1, 2, 3)
 curried(1)(2)(3)
curried(1, 2)(3)
const curry = function (func) {
    return function curryFn(...arg) {
        // 当实际参数小于形式参数时
        if (arg.length < func.length) {
            return function () {
                return curryFn(...arg.concat(Array.from(arguments)));
            }
        }
        // 实参和形参个数相同,调用 func,返回结果
        return func(...arg);
    }
}
上一篇下一篇

猜你喜欢

热点阅读