mixin、柯里化、高阶函数
2019-10-14 本文已影响0人
_ClariS_
mixin 混入
最基本的 mixin 就是简单地将一个对象的属性复制给另一个对象
var mixin = function(a,b){
for(let key in b){
a[key] = b[key]
}
}
为了简化 mixin,ES6 中提供了一个新的方法 Object.assign
柯里化(curry)
image.png概念:设有一个关于多个自变量的函数
f(x,y)=x+2y
,如果将其中一个自变量 x 或 y 固定,得到一个新函数,如g(y)=f(1,y)=1+2y
,那么这个新函数就叫做偏函数,而这个变化的过程就叫做柯里化。
一个简单的例子
image.png一个稍微复杂点的例子
image.png从以上例子中可以看出柯里化其实就是一个函数再返回另外一个函数
能将一个函数变为偏函数的库 Underscore.js
http://js.jirengu.com/binik/1/edit?html,js,console,output
HOC 高阶函数
高阶函数是至少满足下列一个条件的函数:
- 接受一个或多个函数作为输入
- 输出一个函数
其中,let f = Function.prototype.bind.call(add, undefined, 1);
等价于let f = add.bind(undefined, 1);
高阶组件就是一个组件接收另外一个组件,将其进行一些封装,然后输出接收的这个组件