反射
反射机制是指顺序能够接见、检测和修正它本身状况或行动的一种才能。关于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
的援用,Helloclass
与Hellosubclass
同享统一个prototype
,重写一个类的成员或要领会影响另一个。
能够运用反射机制继续。运用for(...in...)
语句罗列出一切基类prototype
成员,并将其赋值给prototype
对象。进一步,能够为每一个类增加一个共有的要领用来完成类的继续:
function.prototype.inherit=function(baseClass)
{
for(var p in baseClass.prototype)
{
this.prototype[p] = baseClass.prototype[p];
}
}
能够看出,所谓的反射机制,从简片面来说,就是对类中成员举行罗列、修正等操纵的才能。假如存在一种机制,在不知道某一个类中到底有什么函数,或许成员变量的情况下就能够对其操纵(比方,js
能够对类成员举行罗列),这类机制就能够成为反射。js
中没有继续机制,然则能够对某一个类的成员经由过程反射机制“一一复制”,然后再修正须要“掩盖”的成员,就能够到达“继续”的结果。这也是反射机制的一个运用。