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);
}- ✓Poprawna odpowiedź: Rekurencyjnie zamrozić zagnieżdżone obiekty, a potem sam obiekt
- 2Wywołać
Object.freeze(obj, { deep: true }) - 3Użyć
Object.seal, które działa aż do samego dna
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.