js原生は何種類の方式を受け継ぎます.

1230 ワード

js原生継承
js自身はクラスの概念を継承していません.本質的にはプロトタイプの形で実現されます.
1.まず二つのコンストラクションPartとChildを書いて、ChildをPartentを継承するために使います.
function Parent() {
    this.animals = 'animals';
    this.show = function() {
        console.log(this.animals);
    }
}
Parent.prototype.pro = 'pro';
function Child() {
    this.dog = 'dog';
}
2.prototype継承
//      Parent.prototype  Child.prototype        ,     Child.prototype         Parent.prototype
Child.prototype = Parent.prototype; //           ,      

// Object.create(Parent.prototype)                  Parent.prototype,     Student.prototype    ,    Parent.prototype,      Parent.prototype
Child.prototype = Object.create(Parent.prototype); //           ,      

//              Parent    Child prototype,     Parent         ,         
Child.prototype = new Parent();

//                 ,  Child         ,          ,           Parent
Child.prototype.constructor = Child;
3.call、appyコンストラクター継承
//    Child    ,apply  ,         Parent.prototype    
function Child() {
    Parent.call(this);
    this.dog = 'dog';
}
以上より、自分の実際のニーズに応じて適切な継承方式を選ぶことができます.
転載先:https://www.cnblogs.com/ljwk/p/11477303.html