mixin、柯里化和高阶函数
mixin(混入)
mixin(混入)模式就是把b的属性一个一个拷贝到a身上1
2
3
4
5var mixin=function(a,b){
for(let key in b){
a[key]=b[key]
}
}
Object.assign(a,b)也是mixin
curry 柯里化
又称部分求值(Partial Evaluation),是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术。1
2
3
4
5
6
7
8
9
10
11
12var f=function(x,y){return x+2*y}
var g=function(y){return f(1,y)}
g(2) //===5
var g=function(x){
return function(y){
return f(x,y)
}
}
g(1)(2) //===5
1 | var cache=[] |
underscore库可以把普通函数变成偏函数(柯里化)
高阶函数
高阶函数是至少满足下列一个条件的函数:
- 接受一个或多个函数作为输入
- 输出一个函数
一个组件接受一个组件,在这个组件基础上进行封装,返回这个组件,就是高阶组件
Comments