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);
}
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.

Zum Weiterlesen

Fehler in der Frage

JavaScript · Senior · Frage 21

Teste dich selbst

Mach den Test JavaScript · Senior: Fragen und Antworten werden gemischt, und am Ende wartet eine Übersicht der Fehler.

Diesen Test machen