js 柯里化函数

柯里化,听起来有点像数学名词,但是它确实和数学的数列有想象之处

直观的表现:柯里化最直观的表现就是把一个需要传入多个参数的函数变成多个嵌套的只要传入一个参数的函数

var add=function(x,y){

 return x+y;

}

柯里化成这样:

var addCurried=function(x){

 return function(y){

  return x+y;

}

}


addCurried(1)(2);//3


如果是多个参数就会有多层嵌套,相当于把一个函数拆分成多个部分,通过组合得到完整的函数,其实柯里化和前端框架的组件思想相同,都是模块化思想。


来一个四个参数的例子:


var test=function(a,b,c,d){

  console.log(a+b+c+d);

}

柯里化后:

var testCurried=function(a){

return function(b){

return function(c){

return function(d){

console.log(a+b+c+d);//这里写的是逻辑代码,我这里用打印代替

}

}

}

}

var testa=testCurried(1);

var testb=testCurried(2);

var testc=testCurried(3);

var testd=testCurried(4);// 10

感觉上面这样好死板有木有?万一我只想控制最后一个参数,前面几个都是固定的,那怎么办?

客官请看:

var testPosition=testCurried(1)(2)(3);


//只控制第四个参数

testPosition(4);//10

testPosition(5);//11

testPosition(6);//12


总结:柯里化是一种编程艺术,或者说是一种技巧,并非是一定要使用才能实现某个功能的技术,总而言之,柯里化就是使用了组件化的思想来处理函数多个参数的情况,从而提高代码的可阅读性以及可维护性

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值