美文网首页
mixin、柯里化、高阶函数

mixin、柯里化、高阶函数

作者: _ClariS_ | 来源:发表于2019-10-14 23:17 被阅读0次

    mixin 混入

    最基本的 mixin 就是简单地将一个对象的属性复制给另一个对象

    var mixin = function(a,b){
      for(let key in b){
        a[key] = b[key]
      }
    }
    

    为了简化 mixin,ES6 中提供了一个新的方法 Object.assign

    image.png

    柯里化(curry)

    概念:设有一个关于多个自变量的函数f(x,y)=x+2y,如果将其中一个自变量 x 或 y 固定,得到一个新函数,如g(y)=f(1,y)=1+2y,那么这个新函数就叫做偏函数,而这个变化的过程就叫做柯里化。

    image.png

    一个简单的例子

    image.png

    一个稍微复杂点的例子

    image.png

    从以上例子中可以看出柯里化其实就是一个函数再返回另外一个函数

    能将一个函数变为偏函数的库 Underscore.js
    http://js.jirengu.com/binik/1/edit?html,js,console,output

    HOC 高阶函数

    高阶函数是至少满足下列一个条件的函数:

    • 接受一个或多个函数作为输入
    • 输出一个函数
    image.png

    其中,let f = Function.prototype.bind.call(add, undefined, 1);等价于let f = add.bind(undefined, 1);

    高阶组件就是一个组件接收另外一个组件,将其进行一些封装,然后输出接收的这个组件

    相关文章

      网友评论

          本文标题:mixin、柯里化、高阶函数

          本文链接:https://www.haomeiwen.com/subject/dulqmctx.html