在学习function.prototype.bind()方法的时候看到了bind() 的一个作用是实现偏函数应用,顺便了解到了函数柯里化.
函数柯里化(Currying)& 偏函数应用(Partial Application)
偏函数解决的问题是,如果有函数是具有多个参数的,希望能固定其中某几个参数的值。
而函数柯里化,由数学家curry发明的这种使用技巧,所以以他的名字命名。(滑稽.jpg)(库里不但会投三分还会数学哇)。函数柯里化是将一个接受多个参数的函数转变为一组支持链式调用的函数链,其中每个函数仅有一个入参。也可以说,将单参数函数实现为多参数函数的方法。
偏函数应用
引用mdn:mdn上的bind( )的其中一种用法就是实现偏函数应用。
bind( )简单用法之一就是使一个函数拥有预设的初始参数,这些参数作为bind( )二个参数跟在this(或者其他对象)后面,之后它们会被插入到目标函数的参数列表的开始位置,传递给绑定函数的参数会跟在他们后面。
1 | // bind()实现偏函数应用1. |
函数柯里化
1 | //js函数可以接收多个参数 |
至于对于柯里化的应用,等到 以后有接触到再把文章补充完吧.. 写这个笔记主要是为了理解这两者的意义。