• 函数柯里化


    柯里化的好处是可以将多个参数的函数,先传部分参数调用得到一个缓存的函数,避免了重复模板。(利用闭包进行参数缓存,递归的收集参数),如下是一个简单的柯里化实现。具体使用柯里化可以使用loash,curry 工具函数
     
    可以实现无限的参数收集调用
    function curry(fn) {
        if (typeof fn != "function") {
            return;
        }
        var length = fn.length;
        function save(){

            var arg = Array.prototype.splice.call(arguments,0,arguments.length);

            if(arg.length==length){
                return fn.apply(null,arg)
            }
            else
            {
                return function (){
                    var args = Array.prototype.splice.call(arguments,0,arguments.length);
                   return save.apply(null,arg.concat(args));
                };
            }

        }

        return save;
    }
    var add1 = curry(function(a,b,c,d,e,f){
        return a+b+c+d+e+f;
    })
    console.log(add1(1,2,3,4,5,6));
    console.log(add1(1)(2)(3)(4)(5)(6))
  • 相关阅读:
    JSOI2015 R3 退队滚粗了
    bzoj3774
    bzoj1426
    bzoj3294
    java 位向量
    java 移位操作
    java 枚举类型的使用
    mysql 修改 root 用户密码
    几种数据库连接池的比较
    linux python 安装 pip出现 No module named 'setuptools'
  • 原文地址:https://www.cnblogs.com/chillaxyw/p/12104143.html
Copyright © 2020-2023  润新知