currying in javascript-js柯里化

        柯里化是指将一个多参数的函数转化成更少参数的函数,专业解释看维基百科。柯里化实现是通过把参数列表中的某些参数绑定到首先被调用的函数里,这样这些参数就附加到下一次的调用里。这个有个表现柯里化样子的例子:


        babyAnimals是一个柯里化的方法。它的作用是在函数本身彻底执行完之前,对第一个参数的包装。 ‘koalas’被绑定到babyAnimals上,那么我对多个动物的喜欢就能够很容易表达而不仅仅是大象。

        柯里化能够被集成到回调里来创建高层次的”工厂“函数。在事件处理时这种模式非常有用,它能够替代在nodejs里使用的回调模式。(关于这种模式,Brun Jouhi有篇介绍它的很好文章)。这儿是一个关于nodejs处理文件的柯里化应用:


        首先,它看起来好像没发生什么,但是这中模式确实很强大。在nodejs里使用柯里化能够把读取的数据传给其他能够处理该数据的方法。我们能够延迟调用回调方法,直到我们需要时。柯里化的nodejs方法也适用一系列并行I/O的多文件处理,很想nodejs里的 async 库。

        柯里化不是js的本地模式,它经常方便的写一些工具方法,它们能将传递的方法转化成柯里化版的自己。




        现在我们可以通过把一个方法作为第一个参数传递给currier,就能够应用柯里化。

        这就是柯里化。我希望你能够学到一些关于这种强大技术的新东西!你有柯里化的例子分享吗?如果有,请把它写成一个代码片段留在评论里。

原文:

        https://medium.com/the-javascript-collection/ce6da2d324fe

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值