Costruttori in JavaScript
Creare oggetti uno alla volta è lento. Se hai bisogno di dieci studenti con le stesse proprietà, sprechi tempo scrivendo ripetutamente lo stesso codice.
JavaScript risolve questo problema con le Funzioni Costruttore.
Pensa a un costruttore come a un progetto. Un progetto per una casa non è una casa, ma lo usi per costruire molte case.
Come funziona:
Un costruttore è una funzione speciale. Si utilizza la parola chiave new per creare oggetti da essa.
Esempio:
function Student(name, age, city) {
this.name = name;
this.age = age;
this.city = city;
}
const student1 = new Student("John", 21, "Chennai");
const student2 = new Student("David", 22, "Madurai");
Perché usarlo?
- Risparmia tempo.
- Evita la ripetizione del codice.
- Crea una struttura standard per i tuoi dati.
Il ruolo di this:
All'interno di un costruttore, la parola this si riferisce al nuovo oggetto che stai creando.
Se un insegnante dice "la mia classe", la parola "mia" si riferisce a quell'insegnante specifico. Nel codice, this.name punta al nome dell'oggetto specifico che hai appena creato.
Cosa succede quando si usa new?
Quando esegui const emp = new Employee("John", 50000), avvengono quattro passaggi:
- JavaScript crea un oggetto vuoto.
- La parola chiave
thispunta a quel nuovo oggetto. - Le proprietà vengono aggiunte all'oggetto.
- L'oggetto viene restituito.
Aggiungere azioni:
Gli oggetti possono fare molto più che contenere dati. Possono eseguire azioni. In programmazione, queste azioni sono chiamate metodi.
Esempio:
function Laptop(brand, ram) {
this.brand = brand;
this.ram = ram;
this.showDetails = function() {
console.log(this.brand, this.ram);
};
}
L'oggetto Laptop ora contiene dati e una funzione per mostrare tali dati.
Best Practice:
- Inizia sempre il nome del costruttore con la lettera maiuscola. Usa
Student, nonstudent. Questo segnala agli altri sviluppatori di utilizzare la parola chiavenew. - Usa sempre la parola chiave
new. Se la dimentichi, la funzione si comporterà come una funzione normale e causerà errori nel codice.
Confronto:
Oggetti Letterali:
- Ottimi per un singolo oggetto.
- Semplici e veloci.
- Nessun progetto.
Funzioni Costruttore:
- Ottime per molti oggetti.
- Riutilizzabili e organizzate.
- Utilizzano un approccio basato su un progetto.
Fonte: https://www.w3schools.com/js/js_object_constructors.asp Fonte: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/constructor Post completo: https://dev.to/annapoo/constructor-in-javascript-4nbm