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

Parlez brièvement des compétences de mode_javascript en matière de réutilisation du code javascript

WBOY
Libérer: 2016-05-16 16:17:29
original
1337 Les gens l'ont consulté

Il existe un principe célèbre de réutilisation du code, proposé par GoF : donner la priorité à la composition des objets plutôt qu'à l'héritage des classes. En JavaScript, il n'y a pas de notion de classes, la réutilisation du code ne se limite donc pas à l'héritage de classes. Il existe de nombreuses façons de créer des objets en JavaScript. Il existe des constructeurs, vous pouvez utiliser new pour créer des objets et vous pouvez modifier dynamiquement des objets. L'héritage non-classe de JavaScript (que l'on peut appeler le modèle d'héritage moderne) dispose également de nombreuses méthodes de réutilisation, telles que l'utilisation d'autres objets pour les combiner en objets requis, la technologie de mélange d'objets, l'emprunt et la réutilisation des méthodes requises.

Mode d'héritage de classe-mode par défaut

Exemples de deux constructeurs Parent et Enfant :

Copier le code Le code est le suivant :

fonction Parent(nom){
this.name = nom||"Adam";
>
Parent.prototype.say = {
renvoie this.name;
};
fonction Enfant(nom){
>
hériter(Enfant,Parent);

Ce qui suit est une méthode d'implémentation de la fonction d'héritage réutilisable Ensure() :

Copier le code Le code est le suivant :

fonction hériter(C,P){
C.prototype = nouveau P();
>

L'attribut prototype ici 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, lorsque l'objet Enfant sera créé, ses fonctions seront obtenues à partir de l'instance Parent via le prototype :

Copier le code Le code est le suivant :

var enfant = nouvel enfant ();
kid.say();//"Adam"

La chaîne prototype après appel à l'héritage :

Ajouter d'autres attributs de kid :

Copier le code Le code est le suivant :

var enfant = nouvel Enfant();
kid.name = "Patrick";
kid.say();//"Patrick"

Changements dans la chaîne des prototypes :

Vous pouvez trouver le nom dans les propriétés de votre propre objet, vous n'avez donc pas besoin de rechercher la chaîne de prototypes.

L'un des inconvénients de l'utilisation du modèle ci-dessus est que les attributs de deux objets sont hérités en même temps, à savoir les attributs ajoutés à celui-ci et les attributs du prototype. La plupart du temps, ces propriétés ne sont pas nécessaires.

Un autre inconvénient est que l'utilisation de l'héritage Ensure() ne prend pas en charge la transmission de paramètres aux sous-constructeurs, par exemple :

Copier le code Le code est le suivant :

var s = nouvel Enfant("Seth");
s.say();//"Adam"

Ce résultat n'est pas attendu. Bien que le constructeur enfant puisse transmettre des paramètres au 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 à la fin l'objet parent sera recréé.

Cet article se termine ici. Nous continuerons à mettre à jour les autres modes de réutilisation du code JavaScript à l'avenir.

É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