JavaScript反射机制与继续:观点

反射

反射机制是指顺序能够接见、检测和修正它本身状况或行动的一种才能。关于JavaScript,简朴来说,就是对类的成员举行修正等操纵。

js能够经由过程for(...in...)来完成反射。

继续

JavaScript中没有特地的机制来完成类的继续,但能够经由过程复制一个类的prototype到别的一个类来完成继续。

function Helloclass()
{
     //组织函数
}
function Hellosubclass()
{
     //组织函数
}

Hellosubclass.prototype = Helloclass.prototype;
Hellosubclass.prototype.Propertys = "name";
Hellosubclass.prototype.Methods = function()
{
     //要领示例代码
}
var obj = new Hellosubclass();

以上并不是严厉的继续,两个类是统一prototype的援用,HelloclassHellosubclass同享统一个prototype,重写一个类的成员或要领会影响另一个。

能够运用反射机制继续。运用for(...in...)语句罗列出一切基类prototype成员,并将其赋值给prototype对象。进一步,能够为每一个类增加一个共有的要领用来完成类的继续:

function.prototype.inherit=function(baseClass)
{
     for(var p in baseClass.prototype)
     {
          this.prototype[p] = baseClass.prototype[p];
     }
}

能够看出,所谓的反射机制,从简片面来说,就是对类中成员举行罗列、修正等操纵的才能。假如存在一种机制,在不知道某一个类中到底有什么函数,或许成员变量的情况下就能够对其操纵(比方,js能够对类成员举行罗列),这类机制就能够成为反射。
js中没有继续机制,然则能够对某一个类的成员经由过程反射机制“一一复制”,然后再修正须要“掩盖”的成员,就能够到达“继续”的结果。这也是反射机制的一个运用。

    原文作者:psy
    原文地址: https://segmentfault.com/a/1190000000593171
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞