美文网首页
lodash 中的柯里化函数

lodash 中的柯里化函数

作者: KK_boy | 来源:发表于2021-03-22 07:00 被阅读0次
    _.curry()
    
    • 功能:创建一个函数,该函数接收一个或多个func的参数,如果func所需的参数都被提供则执行func并返回执行的结果,否则继续返回该函数并等待接收剩余参数。
    • 参数:需要柯里化的函数
    • 返回值:柯里化后的函数
    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)
    
    • 模拟_.curry()实现
    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);
        }
    }
    

    相关文章

      网友评论

          本文标题:lodash 中的柯里化函数

          本文链接:https://www.haomeiwen.com/subject/ywiacltx.html