I metodi privati delle classi in JavaScript
I metodi privati sono funzioni definite all'interno di una classe che non sono accessibili direttamente al di fuori di essa. Sono nascosti all'esterno della classe e possono essere invocati solo da altri metodi all'interno della stessa classe. Questo concetto è importante perché consente di nascondere dettagli di implementazione e comportamenti specifici alla classe.
Come dichiarare metodi privati
Per dichiarare metodi privati in JavaScript, usiamo il prefisso "#" prima del nome del metodo. Ad esempio:
class ContoBancario {
#saldo;
constructor(saldoIniziale) {
this.#saldo = saldoIniziale;
}
#aggiungiInteresse(tasso) {
this.#saldo += this.#saldo * tasso;
}
deposita(somma) {
this.#saldo += somma;
this.#aggiungiInteresse(0.02); // Esempio di chiamata di un metodo privato.
}
visualizzaSaldo() {
return `Il saldo attuale è: $${this.#saldo}`;
}
}
Nell'esempio sopra, abbiamo dichiarato un campo privato #saldo e due metodi privati: #aggiungiInteresse e #saldo. Questi metodi privati possono essere chiamati solo all'interno della classe ContoBancario.
Accedere ai metodi privati di una classe
Poiché i metodi privati non possono essere invocati direttamente dall'esterno della classe, vengono utilizzati all'interno di metodi pubblici o di altri metodi privati della stessa classe. Questo fornisce un maggiore controllo sull'interazione con i dati interni della classe e contribuisce a prevenire errori e comportamenti indesiderati.
var conto = new ContoBancario(100);
conto.deposita(100);
console.log(conto.visualizzaSaldo());
In questo modo possiamo accedere al metodo privato aggiungiInteresse passando per il metodo deposita.
Vantaggi dei metodi privati
L'uso dei metodi privati offre vari vantaggi:
Incapsulamento: nascondere dettagli di implementazione complessi alla classe, consentendo all'esterno di interagire solo con un'interfaccia ben definita.
Riduzione dei bug: poiché i metodi privati sono accessibili solo internamente, si riduce la probabilità di errori dovuti a chiamate accidentali da parte del codice esterno.
Manutenibilità: facilita la manutenzione del codice in quanto le modifiche interne alla classe non richiedono la riscrittura del codice esterno che utilizza la classe.
Sicurezza: nascondere operazioni sensibili o critiche dalla manipolazione non autorizzata all'esterno della classe.