Einführung
In diesem Lab werden wir untersuchen, wie man ein Objekt in JavaScript tief einfriert. Wir werden lernen, wie man die Object.freeze()-Methode rekursiv verwendet, um alle Eigenschaften eines Objekts einzufrieren und es somit unveränderlich zu machen. Am Ende dieses Labs werdet ihr ein besseres Verständnis dafür haben, wie ihr Änderungen an Objekten verhindert und die Dateneintegrität in eurem JavaScript-Code gewährleistet.
Wie man ein Objekt in JavaScript tief einfriert
Um ein Objekt in JavaScript tief einzufrieren, folge diesen Schritten:
- Verwende
Object.keys(), um alle Eigenschaften des übergebenen Objekts zu erhalten. - Iteriere über die Eigenschaften mit
Array.prototype.forEach(). - Rufe
Object.freeze()rekursiv auf alle Eigenschaften, die Objekte sind, und wendedeepFreeze()erforderlichenfalls an. - Schließlich verwende
Object.freeze(), um das gegebene Objekt einzufrieren.
Hier ist der Code:
const deepFreeze = (obj) => {
Object.keys(obj).forEach((prop) => {
if (typeof obj[prop] === "object") deepFreeze(obj[prop]);
});
return Object.freeze(obj);
};
Du kannst das tief eingefrorene Objekt mit dem folgenden Code testen:
"use strict";
const val = deepFreeze([1, [2, 3]]);
val[0] = 3; // nicht erlaubt
val[1][0] = 4; // ebenfalls nicht erlaubt
Der obige Code wird einen Fehler werfen, da das val-Objekt tief eingefroren ist und nicht geändert werden kann.
Zusammenfassung
Herzlichen Glückwunsch! Du hast das Lab "Deep Freeze Object" abgeschlossen. Du kannst in LabEx weitere Labs absolvieren, um deine Fähigkeiten zu verbessern.