var obj = {
a: 1,
b: 2
};
Object.freeze(obj);
obj.newField = 3; // You can't assign new field , or change current fields
L'esempio di cui sopra rende completamente il vostro oggetto immutabile.
Consente di guardare l'esempio seguente.
const obj = {
a: 1,
b: 2
};
obj.a = 13; // You can change a field
obj.newField = 3; // You can assign new field.
Non darà alcun errore.
ma se si prova come quella
const obj = {
a: 1,
b: 2
};
obj = {
t:4
};
Si genera un errore del genere "obj è di sola lettura".
Un altro caso d'uso
const obj = {a:1};
var obj = 3;
Si getterà Duplicate declaration "obj"
Sempre secondo documenti Mozilla const spiegazione
La dichiarazione const crea un riferimento di sola lettura per un valore. E ' non significa che il valore che detiene è immutabile, solo che l'identificatore di variabile non può essere riassegnato.
Questi esempi creati in base alle funzioni ES6 di babeljs.
fonte
2015-10-14 11:59:22
Ho iniziato a utilizzare [babeljs] (https://babeljs.io/docs/learn-es2015/) nel mio processo di compilazione in modo da ignorare principalmente problemi di compatibilità come questi. – spender
No - fanno cose diverse. const impedisce la riassegnazione (ad esempio non puoi const x = 1; x = 2); il blocco impedisce la mutazione (ad esempio non è possibile Object.freeze (x); x.a = 2); – joews