Maison > interface Web > js tutoriel > Explication du modèle d'usine Exemple de modèle de conception JavaScript_Connaissances de base

Explication du modèle d'usine Exemple de modèle de conception JavaScript_Connaissances de base

WBOY
Libérer: 2016-05-16 16:57:08
original
1199 Les gens l'ont consulté

La méthode d'usine JavaScript est la méthode d'origine

Étant donné que les propriétés d'un objet peuvent être définies dynamiquement après la création de l'objet, lorsque JavaScript a été introduit pour la première fois, un code similaire au suivant serait être écrit

Copier le code Le code est le suivant :

var oCar = new Object;
oCar.color = "bleu";
oCar.doors = 4;
oCar.mpg = 25;
oCar.showColor = function() {
alert(this.color);
};

Dans le code ci-dessus, créez l'objet car. Donnez-lui ensuite quelques attributs : il est bleu, a quatre portes et obtient 25 miles par gallon. Le dernier attribut est en fait un pointeur vers une fonction, ce qui signifie que l'attribut est une méthode. Après avoir exécuté ce code, l'objet car peut être utilisé. Mais il y a un problème ici, c'est que vous devrez peut-être créer plusieurs instances de car, ce qui n'est évidemment pas une bonne méthode.

Solution : méthode Factory
Pour résoudre ce problème, les développeurs ont créé des fonctions d'usine qui créent et renvoient des objets de types spécifiques. Par exemple, la fonction createCar() peut être utilisée pour encapsuler les opérations de création d'un objet voiture précédemment répertoriées :

Copier le code Le code est le suivant :

fonction createCar(sColor,iDoors,iMpg) {
var oTempCar = new Object;
oTempCar.color = sColor;
oTempCar.doors = iDoors;
oTempCar.mpg = iMpg;
oTempCar.showColor = function() {
alert( this.color);
};
return oTempCar;
}

var oCar1 = createCar("red",4,23);
var oCar2 = createCar("blue",3,25);

oCar1.showColor(); //Sortie "rouge"
oCar2.showColor(); //Sortie "bleu"

Appelez cette fonction d'usine pour créer un nouvel objet et donnez-lui tous les attributs nécessaires. Ajoutez des paramètres à la fonction createCar() pour attribuer des valeurs aux attributs de couleur, de portes et de mpg de l'objet voiture à créer. Cela fait que deux objets ont les mêmes propriétés, mais des valeurs de propriété différentes. Le mauvais côté de cette méthode est que chaque fois qu'un objet car est créé (c'est-à-dire que la fonction createCar est appelée une fois), la méthode showColor est créée à plusieurs reprises pour chaque objet. En fait, chaque objet partage la même chose. fonction. . Nous essayons donc de déclarer ses attributs de méthode en dehors de la fonction.

Définir des méthodes objet en dehors de la fonction usine
Certains développeurs définissent des méthodes objet en dehors de la fonction usine, puis pointent vers la méthode via des attributs pour éviter ce problème :

Copier le code Le code est le suivant :

fonction showColor() {
alerte (cette. couleur);
>

function createCar(sColor,iDoors,iMpg) {
var oTempCar = new Object;
oTempCar.color = sColor;
oTempCar.doors = iDoors;
oTempCar.mpg = iMpg;
oTempCar.showColor = showColor;
return oTempCar;
}

var oCar1 = createCar("red",4,23);
var oCar2 = createCar("blue",3,25);

oCar1.showColor(); //Sortie "rouge"
oCar2.showColor(); //Sortie "bleu"

Dans le code réécrit ci-dessus, la fonction showColor() est définie avant la fonction createCar(). Dans createCar(), l'objet reçoit un pointeur vers la fonction showColor() existante. Fonctionnellement, cela résout le problème de la création répétée d’objets fonction ; mais sémantiquement, la fonction ne ressemble pas à une méthode de l’objet.

É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