之前的博客有介绍JavaScript函数式编程的curry化,今天就介绍一个跟curry化有点像的偏函数(partial function)
先介绍一下什么叫偏函数,其实指的是将给定的函数的部分参数固定化,然后返回新的函数举个例子比如
这是数学里的多元函数,我们固定其部分参数,那么就可以得到新的函数,比如这种
仔细想想curry化,其实是一种特殊的偏函数,它固定参数的顺序只能是从左往右,然后返回新函数
了解了概念,我们来动手实现这个偏函数
给出多种实现方式(纯属自己无聊)
es5实现
//es5实现
function partial(fn){
var args = Array.prototype.slice.call(arguments); //将类数组对象arguments转为数组
args.shift(); //除去fn参数