是函数式变成的基础之一,js写函数式常用的工具之一,此处试着实现一个 函数工具
var curry=function(f){ var fun="" var len= f.length //参数长度 var args=[] //参数保存用于延迟执行的时候添加参数 return fun= function (){ //延迟执行函数 for(var i=0;i
函数组合用于将多个函数组合成一个函数,流式的处理数据
var compose = function() { var args=arguments; //获取所有函数 return function(x) { var result=null; for(var i=args.length;i>0;i--){ //反转函数 if(i==args.length){ result= args[i-1].call(null,x) }else{ result= args[i-1].call(null,result) } } return result; };};
测试:
var gg=1234;function Sum(a,b,c,d,e,f,g,h,j){ return gg+a+b+c+d+e+f+g+h+j;}var xxx=curry(Sum);console.log(xxx(1)); //[Function]console.log(xxx(2)); //[Function]console.log(xxx(4,5,6)); //[Function]console.log(xxx(7,8,9)); //[Function]console.log(xxx(10)); //52