𝗙𝗼𝗻𝗰𝘁𝗶𝗼𝗻𝘀 𝗖𝗼𝗻𝘀𝘁𝗿𝘂𝗰𝘁𝗲𝘂𝗿𝘀 𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁
Une fonction constructeur est un modèle pour les objets. Utilisez-la pour créer de nombreux objets ayant la même structure.
Comment ça marche :
Vous utilisez le mot-clé new pour appeler une fonction constructeur. Ce processus réalise quatre actions :
- Il crée un objet vide.
- Il définit
thispour qu'il pointe vers ce nouvel objet. - Il exécute le code à l'intérieur de la fonction.
- Il renvoie le nouvel objet.
Code d'exemple :
function Employee(name, salary) {
this.name = name;
this.salary = salary;
}
const emp1 = new Employee("Saravanan", 50000);
Règles à suivre :
- Commencez les noms de fonctions par une majuscule.
- Utilisez
thispour assigner des propriétés au nouvel objet.
Le rôle de this :
À l'intérieur d'un constructeur, this fait référence à l'objet spécifique que vous créez. Par exemple, this.name = name assigne la valeur du paramètre à la propriété de l'objet.
Ajout de méthodes :
Vous pouvez ajouter des fonctions à l'intérieur d'un constructeur pour que chaque objet puisse les utiliser.
function Employee(name, salary) {
this.name = name;
this.salary = salary;
this.displayInfo = function() {
console.log(this.name + " earns " + this.salary);
};
}
Efficacité de la mémoire :
Si vous ajoutez des méthodes directement au constructeur, chaque objet reçoit sa propre copie. Cela consomme plus de mémoire.
Au lieu de cela, utilisez le prototype. L'ajout d'une méthode au prototype permet de partager une seule copie entre tous les objets.
Employee.prototype.greet = function() {
console.log("Hello " + this.name);
};
Résumé :
- Utilisez des littéraux d'objet pour un objet unique.
- Utilisez des fonctions constructeurs pour plusieurs objets ayant la même structure.
Source: https://www.w3schools.com/js/js_object_constructors.asp Source: https://www.geeksforgeeks.org/javascript/javascript-function-constructor/ Source: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function
Lien du post: https://dev.to/dev_saravanan_journey/javascript-constructor-functions-k6k