基于Javascript的继承方法对象的构造函数方法对象的详细解决方案
传承之道ECMAscript实现继承是一个以上的方式。这是因为在Javascript中的继承机制尚不明确,但实现的模仿。这意味着所有的遗产细节不是由解释器完全处理。作为一个开发者,你有权决定继承继承的最合适的方法。继承最原始的方式是模仿对象,和下面的重点是方法。
对象冒充
一个对象冒充继承的核心取决于该关键字的功能环境使用。原理如下:构造函数使用this关键字来分配所有的属性和方法(即,类声明的构造函数)。因为构造函数是一个函数,可以使你的类的构造函数一种B然后叫it.classb将获得属性和方法在类的构造函数定义的。例如,ClassA和ClassB是这样定义的:
复制代码代码如下所示:
函数的ClassA(scolor){
this.color = scolor;
this.saycolor =函数(){
警戒(这个颜色);
};
}
函数B(scolor){
}
关键词,这是指构造正在创作的对象。然而这种方法,这一点属于它的对象。这一原则是以课堂为正则函数建立一个继承机制,而不是作为一个构造函数。继承机制可以实现如下使用构造函数B为如下:
复制代码代码如下所示:
函数B(scolor){
this.newmethod = A;
This.newMethod(scolor);
删除this.newmethod;
}
在这段代码中,方法提出了ClassA(记住,函数名只是指向它的指针)。方法则称,这是传递给它的参数scolor ClassB构造函数。最后一行代码删除参考课堂,这样它就不会被称为后。
所有的新特性和新的方法,新方法必须删除的代码行后定义。否则,父类的相关属性和方法可以被重写。
复制代码代码如下所示:
函数B(scolor,SNAME){
this.newmethod = A;
This.newMethod(scolor);
删除this.newmethod;
this.name =国;
this.sayname =函数(){
警报(这个名字);
};
}
为了证明前面的代码是有效的,您可以运行以下示例:
复制代码代码如下所示:
无功obja =新课堂(蓝色);
无功objb =新的B(红
ObjA.sayColor(蓝色); / /输出
objb.saycolor(红色); / /输出
ObjB.sayName(约翰); / /输出
对象冒充可以实现多重继承
有趣的是,对象冒充可以支持多重继承。例如,如果有两类ClassX和优雅,ClassZ想继承两类,你可以使用下面的代码:
复制代码代码如下所示:
函数的ClassZ(){
this.newmethod = ClassX;
This.newMethod();
删除this.newmethod;
this.newmethod =优雅;
This.newMethod();
删除this.newmethod;
}
有一个缺点,优雅的有高的优先级,如果有两类ClassX和优雅的具有相同的名称或方法。因为它从后者类继承。除了这个小问题,很容易使用对象来模拟多重继承机制。
由于这种继承方法的普及,ECMAscript第三版本增加了两种方法的函数对象,即称为()和()的应用。后来,许多派生的方法进行继承实际上是基于电话()和()的应用。