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.
On définit d'abord une fonction vide, le paramètre formel est original, comme le suivant :
function createAnother(original){}
Créer un nouvel objet dans ce clone de fonction :
function createAnother(original){ var clone=Object.create(original); }
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'); }; }
Enfin, renvoyez l'objet clone :
function createAnother(original){ var clone=Object.create(original); clone.sayHi=function(){ alert('hi'); }; return clone; }
Supposons que nous ayons un tel objet :
var person={ name:'Nicholas', friends:['Shelby','Court','Van'] };
Passons l'objet ci-dessus comme paramètre réel à notre fonction à exécuter :
var anotherPerson=createAnother(person); anotherPerson.sayHi();
Le résultat de l'opération est : une fenêtre « Salut » apparaîtra.
On voit que la fonction createAnother a cette phrase :
var clone=Object.create(original);
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'); };
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!