𝗙𝗼𝗻𝗰𝘁𝗶𝗼𝗻𝘀 𝗱'𝘂𝘀𝗶𝗻𝗲 𝗲𝘁 𝗳𝗼𝗻𝗰𝘁𝗶𝗼𝗻𝘀 𝗰𝗼𝗻𝘀𝘁𝗿𝘂𝗰𝘁𝗲𝘂𝗿𝘀 𝗲𝗻 𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁
Créer des objets un par un est une erreur.
Si vous écrivez manuellement un objet pour chaque utilisateur ou camarade de classe, vous répétez du code. Si vous avez 100 utilisateurs, vous écrivez la même logique 100 fois. Cela entraîne des bugs. Vous pourriez accidentellement modifier une propriété plus tard et faire planter votre application.
Utilisez plutôt ces deux modèles pour écrire un code propre.
- Fonctions d'usine (Factory Functions)
Imaginez une véritable usine. Des matières premières y entrent. Un produit fini en sort.
Une fonction d'usine prend des paramètres et renvoie un nouvel objet.
Exemple :
function classFactory(name) {
return {
reply() {
return `${name} is present`
}
}
}
Les avantages :
- Vous écrivez la logique une seule fois.
- Vous réutilisez la fonction pour chaque nouvel objet.
- Les données restent protégées. Le nom reste à l'intérieur de la portée (scope) de la fonction. Vous ne pouvez pas le modifier accidentellement de l'extérieur.
- Fonctions constructeurs (Constructor Functions)
Les fonctions constructeurs créent également des objets. Elles utilisent le mot-clé "new" et le mot-clé "this". Par convention, on commence leur nom par une majuscule.
Exemple :
function Classmate(name) {
this.name = name
this.reply = function() {
return `${this.name} is present`
}
}
Lorsque vous utilisez "new", JavaScript fait le travail pour vous :
- Il crée un nouvel objet.
- Il l'assigne à "this".
- Il renvoie l'objet automatiquement.
Vous n'avez pas besoin d'instruction "return".
Faire évoluer votre code
Vous pouvez combiner ces modèles avec des tableaux pour gérer de grandes quantités de données. Au lieu de taper chaque nom, utilisez une fonction map.
Exemple :
const names = ['Kali', 'Andrew', 'Pearl', 'Percy']
const classmates = names.map(name => new Classmate(name))
Vous avez maintenant une liste d'objets prête à l'emploi.
Résumé :
- Évitez la création manuelle d'objets pour prévenir la répétition.
- Utilisez les Factory Functions pour encapsuler la logique et protéger les données.
- Utilisez les Constructor Functions pour tirer parti du mot-clé "new" pour la création automatique d'objets.
- Écrivez toujours votre logique une seule fois et réutilisez-la partout.
Source : https://dev.to/pearlodi/factory-functions-and-constructor-functions-in-javascript-lmb