数码资讯
使用基于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(约翰); / /输出
首先,我们分析了构造函数和原型链的两个缺点来实现继承模式。
构造函数(对象伪装)的主要问题是,我们必须使用构造函数模式,继承原型定义的方式,这不是最佳选择。但是,如果使用原型链,就不能使用参数构造函数。开发者如何选择答案很简单,它们都被使用了。
构造函数+原型混合法
这种继承使用构造函数定义类,不使用任何原型。创建一个类是定义属性构造函数和原型定义方法的最好方式。这种方法也适用于继承机制,使用对象继承构造函数的属性和继承原型对象的原型链。重写前面的例子在这两方面:代码如下:
复制代码代码如下所示:
函数的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(约翰); / /输出
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。