var obj = {
a: 1,
b: 2
};
Object.freeze(obj);
obj.newField = 3; // You can't assign new field , or change current fields
Das obige Beispiel es Ihr Objekt unveränderlich vollständig macht.
Schauen wir folgendes Beispiel.
const obj = {
a: 1,
b: 2
};
obj.a = 13; // You can change a field
obj.newField = 3; // You can assign new field.
Es wird keinen Fehler geben.
Aber wenn Sie das versuchen, wie
const obj = {
a: 1,
b: 2
};
obj = {
t:4
};
Es wird ein Fehler, wie die „obj ist schreibgeschützt“ werfen.
Ein weiterer Anwendungsfall
const obj = {a:1};
var obj = 3;
Es Duplicate declaration "obj"
Auch nach mozilla docs const Erklärung
Die const Deklaration erstellt eine schreibgeschützte Verweis auf einen Wert werfen. Es bedeutet nicht, dass der Wert, den es enthält, unveränderlich ist, nur dass die Variablenkennung nicht neu zugewiesen werden kann.
Diese Beispiele wurden nach babeljs ES6 erstellt.
Ich habe [babeljs] (https://babeljs.io/docs/learn-es2015/) in meinem Build-Prozess verwendet, so dass ich Kompatibilitätsprobleme wie diese hauptsächlich ignorieren kann. – spender
Nein - sie machen verschiedene Dinge. const verhindert die Neuzuweisung (z. B. kann nicht const x = 1; x = 2); Einfrieren verhindert eine Mutation (z. B. können Sie nicht Object.freeze (x); x.a = 2); – joews