Résumé : dans ce tutoriel, vous découvrirez les fonctions d’usine JavaScript qui sont des fonctions qui renvoient des objets.
Introduction aux fonctions d’usine en JavaScript
Une fonction d’usine est une fonction qui renvoie un nouvel objet. Ce qui suit crée un objet person nommé john
:
Code language: JavaScript (javascript)
Sortie:
L’objet john
a deux propriétés : firstName
et lastName
, et une méthode getFullName()
qui renvoie le nom complet.
Supposons que vous ayez besoin de créer un autre objet similaire appelé jane
, vous pouvez dupliquer le code comme suit:
Code language: JavaScript (javascript)
Sortie:
L’objet jane
a les mêmes propriétés et méthodes que l’objet john
.
Plus vous souhaitez créer d’objets, plus vous devez copier de code en double.
Pour éviter de copier le même code encore et encore, vous pouvez développer une fonction qui crée l’objet person
:
Code language: JavaScript (javascript)
Lorsqu’une fonction crée un objet, elle est appelée fonction d’usine. Le createPerson()
est une fonction d’usine car il renvoie un nouvel objet person
.
Le code suivant utilise la fonction d’usine createPerson()
pour créer deux objets john
et jane
:
Code language: JavaScript (javascript)
Avec la fonction factory, vous créez n’importe quel nombre d’objets person
que vous souhaitez sans dupliquer le code.
Lorsque vous créez un objet, cet objet nécessite un espace dans la mémoire. Si vous avez mille person
objets, vous avez besoin de mille espaces dans la mémoire pour stocker ces objets. Ces objets personne, cependant, ont la même méthode getFullName()
.
Pour éviter de répéter la même fonction getFullName()
dans la mémoire, vous pouvez supprimer la méthode getFullName()
de l’objet person
:
Code language: JavaScript (javascript)
Et déplacez cette méthode vers un autre objet:
Code language: JavaScript (javascript)
Et avant d’appeler la méthode getFullName()
sur l’objet person
, vous pouvez affecter la méthode de l’objet behavior
à l’objet person
comme suit:
Code language: JavaScript (javascript)
Ce sera plus difficile si vous avez de nombreuses méthodes et que vous devez les affecter manuellement.
C’est pourquoi la méthode Object.create()
entre en jeu.
L’Objet.Méthode create()
La méthode Object.create()
crée un nouvel objet en utilisant un objet existant comme prototype du nouvel objet:
Code language: CSS (css)
Vous pouvez donc utiliser le Object.create()
comme suit:
Code language: JavaScript (javascript)
Maintenant, vous pouvez créer des objets person
et appeler les méthodes de l’objet behavior
:
Code language: JavaScript (javascript)
Le code fonctionne parfaitement bien. Cependant, dans la pratique, vous verrez rarement les fonctions d’usine. Au lieu de cela, vous verrez les constructeurs de fonctions ou les classes.
Résumé
- Une fonction d’usine est une fonction qui renvoie un nouvel objet.
- Utilisez
Object.create()
pour créer un objet en utilisant un objet existant comme prototype.
- Ce tutoriel a-t-il été utile?
- Ouinon