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

Héritage parasite de l'héritage JS

小云云
Libérer: 2018-03-07 10:50:58
original
2133 Les gens l'ont consulté

Il est facile de se sentir intimidé en entendant le terme « héritage parasitaire ». Qu'est-ce que c'est ? Ne vous inquiétez pas, cet article tentera d'expliquer cette méthode d'héritage en JS d'une manière facile à comprendre. J'espère que cela pourra aider tout le monde.

1. Un exemple

On définit d'abord une fonction vide, le paramètre formel est original, comme le suivant :

function createAnother(original){}
Copier après la connexion

Créer un nouvel objet dans ce clone de fonction : ​​

function createAnother(original){
    var clone=Object.create(original);
}
Copier après la connexion

Ajoutez l'attribut sayHi à l'objet clone. L'attribut sayHi est une fonction :

function createAnother(original){
    var clone=Object.create(original);    clone.sayHi=function(){
        alert('hi');
    };
}
Copier après la connexion

Enfin, renvoyez l'objet clone :

function createAnother(original){
    var clone=Object.create(original);    clone.sayHi=function(){
        alert('hi');
    };    return clone;
}
Copier après la connexion

Supposons que nous ayons un tel objet :

var person={
    name:'Nicholas',
    friends:['Shelby','Court','Van']
};
Copier après la connexion

Passons l'objet ci-dessus comme paramètre réel à notre fonction à exécuter :

var anotherPerson=createAnother(person);
anotherPerson.sayHi();
Copier après la connexion

Le résultat de l'opération est : une fenêtre « Salut » apparaîtra.

2. Point douteux : quelle est la différence entre cette méthode et l'héritage du prototype Object.create(o) ?

On voit que la fonction createAnother a cette phrase :

var clone=Object.create(original);
Copier après la connexion

N'est-ce pas un héritage prototypique ?
En effet, la méthode d'héritage prototypique est bel et bien utilisée en interne, et l'objet final renvoyé est l'objet clone. Cependant, c'est encore un peu différent de l'héritage prototypique :
L'héritage prototypique hérite des propriétés de l'objet d'origine, et le nouvel objet n'a pas de nouvelles propriétés supplémentaires ; L'objet possède l'objet d'origine en plus des propriétés, et possède également des propriétés ajoutées en interne.
Dans l'exemple ci-dessus, par rapport à l'héritage prototypique, il existe des instructions clés supplémentaires :

    clone.sayHi=function(){
        alert('hi');
    };
Copier après la connexion

Après la création d'une instance, l'instance aura cet attribut.

Recommandations associées :

Partage de plusieurs styles d'héritage js

Analyse du code source de l'héritage js Base class_js orienté Objet

Compétences code_javascript de mise en œuvre de l'héritage JS

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