In JavaScript esistono tre parole chiave per definire reference, variabili, oggetti e/o funzioni:
var prova1; let prova2; const prova3;
varè deprecataletindica un reference variabileconstindica un reference costante
Vediamo un esempio d’uso di const , dove si evidenzia qualcosa di strano:
const auto = {ruote:4, modello:"tigra", colore:"bianco"};
auto.colore = "rosso"; // ok, oggetto modificabile
auto = {}; // errore di riassegnazione sul reference costante
auto = {ruote:4, modello:"tigra", colore:"bianco"}; // errore ...
const non serve a definire costanti, ma indica che:
- non si può modificare la destinazione del reference (nell’esempio:
auto) - viceversa, è consentito modificare il contenuto dell’oggetto (nell’esempio:
auto.colore)
Per rendere non modificabile anche le proprietà dell’oggetto è possibile usare un metodo Object.freeze()
const auto = {ruote:4, modello:"tigra", colore:"bianco"};
Object.freeze(auto);
auto.colore = "rosso"; // Errore