美文网首页
科里化(难)

科里化(难)

作者: 李永州的FE | 来源:发表于2018-04-06 16:46 被阅读0次

    这是我自己写的

     function add(a, b) {
           return a + b;
       }
       // 假设有一个 curry 函数可以做到柯里化
       function curry(fn) {
           return function (a) {
               return function (b) {
                   return fn(a, b)
               }
           }
       }
       var addCurry = curry(add);
       console.log(addCurry(1))
       console.log(addCurry(1)(2))
       addCurry(1)(2) // 3
    

    他们是这么写的,这个难点在于一开始的函数参数个数是不确定的,所以只能用arguments来截取这样子

    var curry = function (fn) {
        var args = [].slice.call(arguments, 1);
        return function() {
            var newArgs = args.concat([].slice.call(arguments));
            return fn.apply(this, newArgs);
        };
    };
    

    相关文章

      网友评论

          本文标题:科里化(难)

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