JavaScript の継承 - 構造の継承。

構造の継承

親クラスのコンストラクターを使用してサブクラスを拡張します。親クラスの構築プロパティを子クラスにコピーします(親クラスのプロトタイプはコピーできません)

 //动物类
    function Animal(name, sex) {
    
    
        this.name = name || 'Animal';
        this.sex = sex || '未知';
        this.sleep = function () {
    
    
            console.log(this.name + "在睡觉!");
        }
    }
    //添加原型属性和方法
    Animal.prototype = {
    
    
        eat: function () {
    
    
            console.log(this.name + "在吃饭!");
        },
        play: function () {
    
    
            console.log(this.name + "在玩!");
        }
    }

    //科目类
    function Type(type) {
    
    
        this.type = type || '类型';
    }
    Type.prototype.paTree = function (args) {
    
    
        console.log(args);
    }

    function Cat(name, sex, type) {
    
    
        Animal.call(this, name, sex);
        Type.call(this, type);
    }
     var cat = new Cat('小黑', '公', '猫科');
    cat.sleep();
    console.log(cat);
    //子类的实例是本身
    console.log(cat instanceof  Cat);//true
    console.log(cat instanceof  Animal);//false
    console.log(cat instanceof  Type);//false

特徴
サブクラス作成時に親クラスにパラメータを渡すことができます。
多重継承を実現できます。

欠点
サブクラス オブジェクトのインスタンスは、それ自体であり、親クラスではありません。
継承できるのは親クラスの構築プロパティおよびメソッドのみであり、プロトタイプのプロパティおよびメソッドは継承できません。
完全な継承ではなく、親クラスのコピーであるクローン作成に似ており、パフォーマンスに影響します。

おすすめ

転載: blog.csdn.net/weixin_46953330/article/details/118636196