mixin混入
柯里化(curry)
高阶函数
mixin混入
什么是 mixin 呢? 最基本的 mixin 其实就是简单地将一个对象的属性复制给另一个对象:
JQuery的extend实现mixin
|
|
Object.assign
|
|
curry 柯里化
函数f(x,y) = x+2y
当x=1时,f(1,y) = 1+2y,此时只剩下自变量y
g(y) = 1+2y
我们把f(x,y)变成g(y)的过程称为柯里化
柯里化的作用:减少自变量
上面的g(y)是将x=1定死,如果x的值不确定呢?
这样,将原本f(x,y)变成了g(x)(y),每次只传一个参数
再来看个例子
关于柯里化
从纯粹的语义上,curry化就是lambda表达式(λ)的一个糖
柯里化是因为 lambda 演算(λ)只有一个参数才被发明的,程序里用你除了恶心自己恶心别人并没有什么卵用。
知乎:柯里化在工程中有什么好处?
underscore中的_.partial
高阶函数
满足以下条件中的任意一个就是高阶函数:
- 接受一个或多个函数作为参数传入
- return出一个函数