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:

  1. JavaScript crea un oggetto vuoto.
  2. La parola chiave this punta a quel nuovo oggetto.
  3. Le proprietà vengono aggiunte all'oggetto.
  4. 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, non student. Questo segnala agli altri sviluppatori di utilizzare la parola chiave new.
  • 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