十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
今天就跟大家聊聊有关javascript中怎么实现继承,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

对象冒充(多继承):
a. 代码:
function ClassA(sColor) {
this.color = sColor;
this.sayColor = function () {
console.log(this.color);
};
}
function ClassB(sName) {
this.name = sName;
this.sayName = function () {
console.log(this.name);
};
}
function ClassC(sColor, sName) {
this.newMethod = ClassA;
this.newMethod(sColor);
delete this.newMethod;
this.newMethod = ClassB;
this.newMethod(sName);
delete this.newMethod;
}
var objA = new ClassA("blue");
var objC = new ClassC("red", "John");
objA.sayColor();
objC.sayColor();
objC.sayName();b. 输出:
blue red John
call()方法(推荐):
a. 代码:
function ClassA(sColor) {
this.color = sColor;
this.sayColor = function () {
console.log(this.color);
};
}
function ClassB(sName) {
this.name = sName;
this.sayName = function () {
console.log(this.name);
};
}
function ClassC(sColor, sName) {
ClassA.call(this,sColor)
ClassB.call(this,sName)
}
var objA = new ClassA("blue");
var objC = new ClassC("red", "John");
objA.sayColor();
objC.sayColor();
objC.sayName();b. 输出:
blue red John
apply()方法(推荐):
a. 代码:
function ClassA(sColor) {
this.color = sColor;
this.sayColor = function () {
console.log(this.color);
};
}
function ClassB(sName) {
this.name = sName;
this.sayName = function () {
console.log(this.name);
};
}
function ClassC(sColor, sName) {
ClassA.apply(this,new Array(sColor))
ClassB.apply(this,new Array(sName))
}
var objA = new ClassA("blue");
var objC = new ClassC("red", "John");
objA.sayColor();
objC.sayColor();
objC.sayName();b. 输出:
blue red John
原型链(单继承):
a. 代码:
function ClassA(color) {
this.color = color
this.sayColor = function () {
console.log(this.color);
};
}
function ClassB(name) {
this.name = name
this.sayName = function () {
console.log(this.name);
};
}
ClassB.prototype = new ClassA("red");
var objA = new ClassA("blue");
var objB = new ClassB("John");
objA.sayColor();
objB.sayColor();
objB.sayName();b. 输出:
blue red John
混用对象冒充与原型链(多继承):
a. 代码:
function ClassA(sColor) {
this.color = sColor;
this.sayColor = function(){
console.log(this.color)
}
}
function ClassB(sName) {
this.name = sName;
this.sayName = function(){
console.log(this.name)
}
}
function ClassC(sColor, sName) {
ClassA.call(this, sColor);
ClassB.call(this, sName);
}
ClassC.prototype = new ClassA();
ClassC.prototype = new ClassB();
var objA = new ClassA("blue");
var objC = new ClassC("red", "John");
objA.sayColor();
objC.sayColor();
objC.sayName();b. 输出:
blue red John
说明:
推荐使用call()方法或apply()方法
看完上述内容,你们对javascript中怎么实现继承有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联行业资讯频道,感谢大家的支持。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。