JavaScript-Konstruktorfunktionen
Eine Konstruktorfunktion ist ein Bauplan für Objekte. Verwenden Sie sie, um viele Objekte mit derselben Struktur zu erstellen.
Funktionsweise:
Sie verwenden das Schlüsselwort new, um eine Konstruktorfunktion aufzurufen. Dieser Prozess bewirkt vier Dinge:
- Er erstellt ein leeres Objekt.
- Er setzt
thisso, dass es auf das neue Objekt verweist. - Er führt den Code innerhalb der Funktion aus.
- Er gibt das neue Objekt zurück.
Beispielcode:
function Employee(name, salary) {
this.name = name;
this.salary = salary;
}
const emp1 = new Employee("Saravanan", 50000);
Regeln, die zu beachten sind:
- Beginnen Sie Funktionsnamen mit einem Großbuchstaben.
- Verwenden Sie
this, um dem neuen Objekt Eigenschaften zuzuweisen.
Die Rolle von this:
Innerhalb eines Konstruktors bezieht sich this auf das spezifische Objekt, das Sie gerade erstellen. Zum Beispiel weist this.name = name den Wert des Parameters der Objekteigenschaft zu.
Methoden hinzufügen:
Sie können Funktionen innerhalb eines Konstruktors hinzufügen, damit jedes Objekt sie nutzen kann.
function Employee(name, salary) {
this.name = name;
this.salary = salary;
this.displayInfo = function() {
console.log(this.name + " earns " + this.salary);
};
}
Speichereffizienz:
Wenn Sie Methoden direkt zum Konstruktor hinzufügen, erhält jedes Objekt eine eigene Kopie. Dies verbraucht mehr Speicher.
Verwenden Sie stattdessen das prototype. Das Hinzufügen einer Methode zum prototype teilt eine einzige Kopie unter allen Objekten.
Employee.prototype.greet = function() {
console.log("Hello " + this.name);
};
Zusammenfassung:
- Verwenden Sie Objektliterale für ein einzelnes Objekt.
- Verwenden Sie Konstruktorfunktionen für mehrere Objekte mit derselben Struktur.
Quelle: https://www.w3schools.com/js/js_object_constructors.asp Quelle: https://www.geeksforgeeks.org/javascript/javascript-function-constructor/ Quelle: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function
Link zum Post: https://dev.to/dev_saravanan_journey/javascript-constructor-functions-k6k