Maison > interface Web > js tutoriel > le corps du texte

Introduction à plusieurs méthodes d'héritage prototypique

一个新手
Libérer: 2017-10-16 09:16:46
original
1356 Les gens l'ont consulté

Héritage prototypique

Parent :

    function Parent(name){
        this.name=name;
    }
    Parent.prototype.sayHello=function(){
        console.log("Hello,"+this.name);
    }
Copier après la connexion
  1. Héritage de chaîne prototypique

    function Kid(){};
    Kid.prototype=new Parent("who");
    
    var k=new Kid();
    console.log(k.name); //who
    console.log(k.sayHello()); //Hello,who
    Copier après la connexion

    Inconvénients : Impossible de passer les paramètres au parent lors de la création d'une instance

  2. Héritage de construction

    function Kid(name){
        Parent.call(this,name);
    };
    
    var k=new Kid("who");
    console.log(k.name); //who
    console.log(k.sayHello()); //error
    Copier après la connexion

    Inconvénients : Impossible d'obtenir le Attribut de chaîne du prototype parent

  3. Héritage d'instance

    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
    Copier après la connexion

    Inconvénients : L'instance est une instance du parent

  4. Héritage de copie

    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
    Copier après la connexion

    Inconvénients : Prenant trop de mémoire

  5. Héritage combiné

    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
    Copier après la connexion

    Inconvénients :Le constructeur de la classe parent est appelé deux fois

  6. Héritage des combinaisons parasites

    function Kid(name){
        Parent.call(this,name);
    }
    (function(){
        var p=function(){};
        p.prototype=Parent.prototype;
        Kid.prototype=new p();
    })()
    Copier après la connexion

    Inconvénients : L'écriture la méthode est plus lourde

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal