JavaScript · Senior · Pytanie 21 z 75

Jak głęboko zamrozić obiekt?

function deepFreeze(obj) {
  for (const value of Object.values(obj)) {
    if (value && typeof value === "object") deepFreeze(value);
  }
  return Object.freeze(obj);
}

Wyjaśnienie

Object.freeze jest płytki, a Object.seal tylko zabrania dodawania i usuwania właściwości. Rekurencja przechodzi po drzewie; przy cyklicznych referencjach trzymaj odwiedzone obiekty w WeakSet. freeze nie ma opcji deep.

Do poczytania

Błąd w pytaniu

JavaScript · Senior · pytanie 21

Sprawdź się

Rozwiąż test JavaScript · Senior: pytania i odpowiedzi są tasowane, a na końcu czeka przegląd błędów.

Rozwiąż ten test