Heim > Web-Frontend > js-Tutorial > Einführung in verschiedene Methoden der prototypischen Vererbung

Einführung in verschiedene Methoden der prototypischen Vererbung

一个新手
Freigeben: 2017-10-16 09:16:46
Original
1377 Leute haben es durchsucht

Prototypische Vererbung

Übergeordnetes Element:

    function Parent(name){
        this.name=name;
    }
    Parent.prototype.sayHello=function(){
        console.log("Hello,"+this.name);
    }
Nach dem Login kopieren
  1. Prototypische Kettenvererbung

    function Kid(){};
    Kid.prototype=new Parent("who");
    
    var k=new Kid();
    console.log(k.name); //who
    console.log(k.sayHello()); //Hello,who
    Nach dem Login kopieren

    Nachteile : Parameter können beim Erstellen einer Instanz nicht an das übergeordnete Element übergeben werden

  2. Konstruktionsvererbung

    function Kid(name){
        Parent.call(this,name);
    };
    
    var k=new Kid("who");
    console.log(k.name); //who
    console.log(k.sayHello()); //error
    Nach dem Login kopieren

    Nachteile: Das kann nicht abgerufen werden übergeordneter Prototyp Kettenattribut

  3. Instanzvererbung

    function Kid(name){
        var p=new Parent(name);
        return p;
    };
    
    var k=new Kid("who");
    console.log(k.name); //who
    console.log(k.sayHello()); //Hello,who
    Nach dem Login kopieren

    Nachteile: Instanz ist eine Instanz des übergeordneten Elements

  4. Vererbung kopieren

    function Kid(name){
        var p=new Parent(name);
        for(var item in p){
            Kid.prototype[item]=p[item];
        }
    }
    
    var k=new Kid("who");
    console.log(k.name); //who
    console.log(k.sayHello()); //Hello,who
    Nach dem Login kopieren

    Nachteile: Beansprucht zu viel Speicher

  5. Kombinierte Vererbung

    function Kid(name){
        Parent.call(this,name);
    }
    Kid.prototype=new Parent();
    
    var k=new Kid("who");
    console.log(k.name); //who
    console.log(k.sayHello()); //Hello,who
    Nach dem Login kopieren

    Nachteile:Der Konstruktor der übergeordneten Klasse wurde zweimal aufgerufen

  6. Vererbung von Parasitenkombinationen

    function Kid(name){
        Parent.call(this,name);
    }
    (function(){
        var p=function(){};
        p.prototype=Parent.prototype;
        Kid.prototype=new p();
    })()
    Nach dem Login kopieren

    Nachteile: Die Schreibmethode ist umständlicher

    Das obige ist der detaillierte Inhalt vonEinführung in verschiedene Methoden der prototypischen Vererbung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage