网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

javascript中怎么实现继承

今天就跟大家聊聊有关javascript中怎么实现继承,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

成都创新互联公司是一家专业提供沙湾企业网站建设,专注与网站设计制作、成都网站建设、H5场景定制、小程序制作等业务。10年已为沙湾众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。

  1. 对象冒充(多继承):
    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
  2. 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
  3. 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
  4. 原型链(单继承):
    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
  5. 混用对象冒充与原型链(多继承):
    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
  6. 说明:

    推荐使用call()方法或apply()方法

看完上述内容,你们对javascript中怎么实现继承有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联行业资讯频道,感谢大家的支持。


分享文章:javascript中怎么实现继承
浏览地址:http://bjjierui.cn/article/jcpdjs.html

其他资讯