JavaScript · Senior · Frage 21 von 75
Wie friert man ein Objekt tief ein?
function deepFreeze(obj) {
for (const value of Object.values(obj)) {
if (value && typeof value === "object") deepFreeze(value);
}
return Object.freeze(obj);
}- 1Verschachtelte Objekte rekursiv einfrieren, dann das Objekt selbst
- 2
Object.freeze(obj, { deep: true })am Objekt aufrufen - 3
Object.sealnutzen, das bis ganz nach unten wirkt
Antwort zeigen
Richtige Antwort: Verschachtelte Objekte rekursiv einfrieren, dann das Objekt selbst
Erklärung
Object.freeze ist flach, und Object.seal verhindert nur Hinzufügen und Entfernen von Eigenschaften. Rekursion läuft durch den Baum; bei zirkulären Referenzen hält man besuchte Objekte in einem WeakSet. Eine Option deep hat freeze nicht.