Il existe un principe célèbre pour la réutilisation du code, qui a été proposé par GoF: la priorité est utilisée pour utiliser des combinaisons d'objets plutôt que l'héritage de classe. Dans JavaScript, il n'y a pas de concept de classes, donc la réutilisation du code ne se limite pas à l'héritage des classes. Il existe de nombreuses façons de créer des objets dans JavaScript, y compris des constructeurs, vous pouvez utiliser de nouveaux objets pour créer des objets et vous pouvez modifier dynamiquement des objets. Il existe également de nombreuses méthodes pour réutiliser l'héritage non classifié (qui peut être appelé mode d'héritage moderne) en JavaScript, tels que la combinaison d'autres objets dans les objets requis, la technologie de mélange d'objets, l'emprunt et la réutilisation des méthodes requises.
Mode d'héritage classique-Default-Default
Exemples de deux constructeurs parents et enfants:
La copie de code est la suivante:
fonction parent (name) {
this.name = name || "Adam";
}
Parent.prototype.say = {
Renvoie ce.name;
};
fonction child (name) {
}
héritage (enfant, parent);
Ce qui suit est une méthode de mise en œuvre de la fonction REUSABLE INHERIT ():
La copie de code est la suivante:
Fonction héritage (c, p) {
C.prototype = new p ();
}
Ici, la propriété Prototype doit pointer vers un objet, pas une fonction, il doit donc pointer vers une instance créée par le constructeur parent, et non vers le constructeur lui-même.
Après cela, lors de la création d'un objet enfant, il obtiendra ses fonctions à partir de l'instance parent via le prototype:
La copie de code est la suivante:
var kid = new child ();
kid.say (); // "Adam"
Appelez la chaîne prototype héritée:
Ajoutez en outre les propriétés de l'enfant:
La copie de code est la suivante:
var kid = new child ();
kid.name = "Patrick";
kid.say (); // "Patrick"
Changements dans la chaîne prototype:
Vous pouvez trouver le nom dans les propriétés de votre objet, afin que vous n'ayez plus à rechercher la chaîne prototype.
L'un des inconvénients de l'utilisation du modèle ci-dessus est qu'il hérite des propriétés de deux objets en même temps, à savoir les propriétés ajoutées à ceci et aux propriétés prototypes. La plupart du temps, ces attributs de soi ne sont pas nécessaires.
Un autre inconvénient est que l'utilisation d'Hériter () hériter () héritage ne prend pas en charge les paramètres de passage aux sous-constructeurs, par exemple:
La copie de code est la suivante:
var s = new Child ("Seth");
S.Say (); // "Adam"
Ce résultat n'est pas attendu. Bien que le constructeur enfant puisse transmettre des paramètres dans le constructeur parent, ce mécanisme d'héritage doit être réexécuté chaque fois qu'un objet enfant est nécessaire, et il est inefficace car l'objet parent sera finalement recréé.
Cet article se termine ici. Nous continuerons à mettre à jour les modes restants du mode de réutilisation du code JavaScript à l'avenir.