JS函数柯里化和反柯里化
2020-04-26 本文已影响0人
南山码僧
非淡泊无以明志,非宁静无以致远。正定聚!
柯里化
概述:
在计算机科学中,柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术。
主要作用是提高函数的专用性。
下边我们通过用例来理解下柯里化的思想吧!
如果我们的原函数add有3个参数或者更多参数,我们是不是要一层一层的嵌套函数啊,这样太麻烦了。所以下边我们借用纯函数的思想来抽象化这个过程。上代码如下:
函数柯里化的应用(好处)
1:参数复用
2:提前返回
3:延迟执行
好处一:参数复用
对于一些有很多参数相同的函数调用情况,柯里化就非常适用了。
看下边例子↓↓↓
好处二:提前返回
提前返回函数避免重复操作,提高效率。
看下边的经典案例↓↓↓
好处三:延迟执行
在所有参数接收完毕后延迟统一执行
看下边的例子↓↓↓
反柯里化
概述:
反柯里化其实就是柯里化的逆过程,目的就是扩大函数的适用范围。
经典用例:
数组的push方法只能用于数组,我们现在通过反柯里化提取push函数,让它也适用于Object对象。