元编程

作者: 悟C | 来源:发表于2018-05-31 23:00 被阅读377次

    摘自《Javascript函数式编程》
    在函数式编程书中这样定义元编程:编写代码来做一些事情叫作编程,而元编程是当你写的代码改变了某些代码被稀释的方式。

    在Javascript中,this引用的动态性质可以用来元编程,观察下面的构造函数:

    function Point2D(x, y) {
       this._x = x;
       this._y = y;
    }
    

    当使用new来生成Point2D函数的对象实例,会得到你所期望的字段值:

    new Point2D(0, 1);
    // => { _x: 0, _y: 1 }
    

    然而,可以使用方法Function.call来进行元编程,将Point2D派生为新Point3D的构造器:

    function Point3D(x, y, z) {
      Point2D.call(this, x, y);
      this._z = z;
    }
    new Point3D(10, -1, 100);
    // => { _x: 10, _y: -1, _z: 100 }
    

    Point3D并没有显示地设置this._x和this._y的值,而是通过调用Point2D的call方法动态绑定this,这样可以改变构造属性的目标。

    相关文章

      网友评论

          本文标题:元编程

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