函数柯里化与偏函数+bind

简单理解:

1,函数柯里化就是把多参数函数分解为多return的单参数函数:

举个例子(伪代码):

function func (a, b, c){
  return
}

柯里化为

function func1 (a){
  return function (b){
    return function (c){
      return
    }
  }
}

调用时
func(1, 2, 3)
func1(1)(2)(3)

柯里化会固定函数的几个参数,

偏函数一般也是会固定函数的几个参数,但是一般第一个参数为一个函数,作为被返回并执行的函数

实现方式如下:

/入参函数
function add(a,b){
    return a + b;
}
//生产偏函数的工厂
function partial(fn,a){
    return function(b){
        return fn(a,b);
    }
}
var parAdd = partial(add,1);//变量parAdd接受返回的新函数
//此时返回
//    function(b){
//        return fn(a,b);
//    }

console.log(parAdd(2));//在调用的时候传入剩余的参数
//此时返回fn(a,b) 会执行函数,返回结果

//结果:3

与bind比较类似:待整理

https://www.jianshu.com/p/eb583d76452f

https://blog.csdn.net/qq_42129063/article/details/81874314

posted @ 2019-12-19 09:05  雨打芭蕉wt  阅读(298)  评论(0编辑  收藏  举报