美文网首页
js函数柯里化

js函数柯里化

作者: hszz | 来源:发表于2022-02-23 12:07 被阅读0次

    柯里化是一种函数的转换,它是指将一个函数从可调用的 f(a, b, c) 转换为可调用的 f(a)(b)(c)。

    • 柯里化包装函数
    function curry(func) {
        return function curried(...args) {
            if(args.length >= func.length) {
                return func.apply(this, args)
            }else {
                return function(...argsNext) {
                    return curried.apply(this, [...args, ...argsNext])
                }
            }
        }
    }
    
    • 测试
    function sum(a, b, c) {
        return a *  b * c
    }
    
    let cSum = curry(sum)
    
    console.log( cSum(2, 2, 2) )
    console.log( cSum(2, 2)(2) )
    console.log( cSum(2)(2)(2) )
    
    image.png

    相关文章

      网友评论

          本文标题:js函数柯里化

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