使用基于Javascript的构造函数+原型链混合模式实现继承机制

使用基于Javascript的构造函数+原型链混合模式实现继承机制
构造函数、原型和继承的缺陷

首先,我们分析了构造函数和原型链的两个缺点来实现继承模式

构造函数(对象伪装)的主要问题是,我们必须使用构造函数模式,继承原型定义的方式,这不是最佳选择。但是,如果使用原型链,就不能使用参数构造函数。开发者如何选择答案很简单,它们都被使用了。

构造函数+原型混合法

这种继承使用构造函数定义类,不使用任何原型。创建一个类是定义属性构造函数和原型定义方法的最好方式。这种方法也适用于继承机制,使用对象继承构造函数的属性和继承原型对象的原型链。重写前面的例子在这两方面:代码如下:
复制代码代码如下所示:
函数的ClassA(scolor){
this.color = scolor;
}

(classa.prototype.saycolor =功能){
警戒(这个颜色);
};

函数B(scolor,SNAME){
ClassA.call(,scolor);
this.name =国;
}

classb.prototype =新ClassA();

(classb.prototype.sayname =功能){
警报(这个名字);
};

在这个例子中,继承机制是由蓝色的代码实现,突出了两行。在代码,在第一行突出显示,在B的构造函数,对象是冒充的继承、类的scolor属性。在代码,在第二行高亮显示,A班的通过原型链继承。因为这种混合的方法是使用一个原型链,instanceof运算符还可以正确运行

下面的示例测试代码:
复制代码代码如下所示:
无功obja =新课堂(蓝色);
无功objb =新的B(红
ObjA.sayColor(蓝色); / /输出
objb.saycolor(红色); / /输出
ObjB.sayName(约翰); / /输出

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部