Fonctions d'usine en javascript

Fonctions d'usine en javascript
Lors de la rédaction d'un programme, il y a des situations où vous souhaitez ajouter plusieurs instances d'un objet rapidement. Fonctions d'usine dans Javascrip sont utilisés explicitement à cet effet. Une usine du monde réel peut produire massivement et rapidement plusieurs copies d'un élément; Il en va de même pour les fonctions d'usine.

Dans JavaScript, une fonction d'usine renvoie un objet qui peut être réutilisé pour faire plusieurs instances du même objet. Il peut en outre accepter des arguments vous permettant de personnaliser l'objet retourné.

Cet article discutera des fonctions d'usine en JavaScript à l'aide d'exemples appropriés. Alors, commençons!

Fonction d'usine en javascript

Les fonctions d'usine JavaScript ont les mêmes fonctionnalités qu'une fonction de classe ou un constructeur; Cependant, ces fonctions n'utilisent pas le «nouveau”Mot-clé lors de la création d'une instance d'objet et renvoyez un objet comprenant la méthode ou les valeurs ajoutées.

Donc, si vous avez une logique complexe et que vous devez construire plusieurs instances d'objets à plusieurs reprises, ajoutez cette logique une fois dans une fonction d'usine, puis utilisez-la pour créer des objets.

Exemple: comment utiliser les fonctions d'usine en javascript
Tout d'abord, nous créerons un «Employé1«Objet ayant deux propriétés:«nom" et "désignation»:

Laissez Employee1 =
Nom: 'Alex',
Désignation: «gestionnaire» ,
showInfo ()
retourner ceci.Nom + 'est un' + ce.désignation;

;
console.Journal (Employé1.showInfo ());

Nous avons également ajouté un "showInfo ()”Méthode qui sortira les propriétés de l'objet dans un format de chaîne.

Découvrez la sortie de la méthode showInfo () pour le «Employé1" objet:

Maintenant, disons que vous voulez créer un autre objet "employé2"Pour un autre employé. À cette fin, vous devez écrire le même code tout en modifiant les valeurs des propriétés en fonction de vos exigences:

Laissez Employee2 =
Nom: 'Stepheny',
Désignation: «éditeur vidéo» ,
showInfo ()
retourner ceci.Nom + 'est un' + ce.désignation;

;
console.Journal (Employee2.showInfo ());

Vous pouvez suivre la procédure ci-dessus pour créer quelques objets employés. Mais que se passe-t-il si vous voulez créer 100 objets employés? Dans un tel cas, la création de chaque objet séparément tout en écrivant le même code consommera encore et encore beaucoup de temps, d'effort et peut faire en sorte que votre code de code gérera à gérer.

Vous pouvez utiliser une fonction d'usine pour vous aider à éviter la duplication de code. Il crée un objet sans plonger dans des classes complexes ni utiliser le «nouveau" mot-clé.

Maintenant, nous allons créer une fonction d'usine JavaScript "CreateEmployee«Pour créer nos objets d'employé:

function createEmployee (nom, désignation)
retour
nom nom,
désignation: désignation,
showInfo ()
retourner ceci.Nom + 'est un' + ce.désignation;

La fonction d'usine donnée ci-dessus renvoie un objet comprenant les valeurs de propriété adoptées comme arguments.

À l'étape suivante, nous créerons trois objets d'employé nommés comme Alex, Forgeron, et Marie:

Laissez Alex = CreateEmployee ('Alex', 'Manager');
Laissez Smith = CreateEmployee ('Smith', 'Video Editor');
Laissez Marie = CreateEmployee ('Marie', 'Content Writer');

Après cela, nous invoquerons la fonction showInfo () pour chacun des objets de l'employé:

console.Log (Alex.showInfo ());
console.bûche (Smith.showInfo ());
console.journal (Marie.showInfo ());

L'exécution du programme JavaScript donné signifie que nous avons réussi à créer un objet employé à l'aide de fonctions d'usine:

Problème d'espace mémoire avec les fonctions d'usine

Dans l'exemple précédent, lorsque vous créez un objet employé et le stockez dans une variable, cet objet a besoin d'espace mémoire, ralentissant les performances du code. Cependant, vous pouvez éviter ce problème en supprimant le «showInfo ()”Méthode de la fonction d'usine et le stockant dans une autre variable.

De notre programme, nous supprimerons le «showInfo ()”Méthode de la fonction d'usine CreateEmployee () et la stockez dans une variable distincte nommée«X»:

function createEmployee (nom, désignation)
retour
nom nom,
désignation: désignation,


const x =
showInfo ()
retourner ceci.Nom + 'est un' + ce.désignation;

Ensuite, nous créerons deux objets d'employés, "Alex" et "Forgeron,"Et avant d'invoquer le"showInfo ()"Méthode pour ces objets, nous attribuerons la méthode de l'objet"X«À l'objet de l'employé de la manière suivante:

Laissez Alex = CreateEmployee ('Alex', 'Manager');
Laissez Smith = CreateEmployee ('Smith', 'Video Editor');
Alex.showInfo = x.showInfo;
Forgeron.showInfo = x.showInfo;
console.Log (Alex.showInfo ());
console.bûche (Smith.showInfo ());

Voici la sortie que nous avons obtenue de l'exécution du programme ci-dessus:

Cependant, l'approche fournie n'est pas évolutive si vous souhaitez ajouter plusieurs méthodes pour un objet employé car vous devez les attribuer individuellement. Si tel est le cas, vous devriez utiliser «Objet.créer()«Méthode dans votre programme JavaScript.

Objet.Créer () Méthode en javascript

L'object.La méthode create () dans JavaScript crée un nouvel objet basé sur l'objet existant en tant que nouveau prototype d'objet.

Nous pouvons utiliser l'objet.Créer () Méthode de cette manière:

const x =
showInfo ()
retourner ceci.Nom + 'est un' + ce.désignation;

function createEmployee (nom, désignation)
Laissez l'employé = objet.créer (x);
employé.name = name;
employé.désignation = désignation;
Employé de retour;

Ensuite, nous créerons nos objets employés, puis invoquerons la méthode de «X”Objet qui est showInfo ():

Laissez Alex = CreateEmployee ('Alex', 'Manager');
Laissez Smith = CreateEmployee ('Smith', 'Video Editor');
console.Log (Alex.showInfo ());
console.bûche (Smith.showInfo ());

La sortie que nous avons vue dans la console signifie que notre programme fonctionne parfaitement bien avec l'objet.Créer () implémentation de la méthode.

Conclusion

Dans JavaScript, une fonction d'usine est un type de fonction qui renvoie un objet et ne nécessite pas l'utilisation de nouveau mot-clé. Il peut être utilisé pour initialiser un objet, similaire à un constructeur. Il est également considéré comme un outil utile qui vous permet de produire rapidement plusieurs instances d'objets. Cet article a discuté des fonctions d'usine en JavaScript à l'aide d'exemples appropriés.