I campi privati delle classi in JavaScript
I campi privati sono variabili o proprietà di una classe che non sono direttamente accessibili dall'esterno della classe. In altre parole, sono nascosti all'esterno della classe e possono essere acceduti solo dai metodi all'interno della stessa classe. Questo concetto è importante perché consente di nascondere dati sensibili o complessi all'esterno della classe.
Come dichiarare campi privati in JavaScript
Per dichiarare campi privati in JavaScript, utilizziamo il prefisso # prima del nome del campo. Ad esempio:
class Persona {
#nome;
#cognome;
constructor(nome, cognome) {
this.#nome = nome;
this.#cognome = cognome;
}
saluta() {
return `Ciao, sono ${this.#nome} ${this.#cognome}.`;
}
}
Nell'esempio sopra, abbiamo dichiarato due campi privati #nome e #cognome all'interno della classe Persona.
Come accedere ai campi privati di una classe in JavaScript
Poiché i campi privati non possono essere acceduti direttamente dall'esterno della classe, dobbiamo utilizzare metodi pubblici per leggere o modificare tali campi. Ad esempio:
const persona = new Persona("Mario", "Rossi");
console.log(persona.saluta()); // Restituirà "Ciao, sono Mario Rossi."
// Modifica dei campi privati
persona.#nome = "Luca"; // Errore! Impossibile accedere direttamente.
Uno dei metodi più comuni per accedere ai campi privati di una classe, consiste nell’utilizzare i getters e setters.
Vantaggi dei campi privati
L'uso di campi privati offre diversi vantaggi:
Incapsulamento: i campi privati consentono di incapsulare dati sensibili o complessi, evitando l'accesso non autorizzato.
Mantenimento dei dati: poiché i campi privati possono essere modificati solo da metodi della classe, è possibile implementare la logica di controllo per garantire che i dati rimangano coerenti.
Estensibilità: se in futuro è necessario apportare modifiche alla classe, è possibile farlo senza dover modificare il codice esterno che utilizza la classe.
Riduzione dei bug: nascondendo dati sensibili, si riduce il rischio di errori e bug dovuti a modifiche accidentali.
Indice pagine di javascript
Indice javascript