JavaScriptObiekty i klasy
Object. freeze()
Zamraża obiekt, blokując dodawanie, usuwanie i zmianę jego właściwości.
- Zwraca
- Ten sam, zamrożony obiekt.
- Zmienia oryginał
- Tak
Przykład
#JavaScript
const LEVELS = Object.freeze({ easy: 1, medium: 2, hard: 3 })
try {
LEVELS.easy = 5
} catch (error) {
console.log(error.name)
}
console.log(LEVELS.easy)
console.log(Object.isFrozen(LEVELS))Konsola
TypeError
1
true
Definicja i zastosowanie
#Metoda Object.freeze() sprawia, że obiektu nie da się już zmienić: nie dodasz nowych właściwości, nie usuniesz istniejących i nie zmienisz ich wartości. W trybie ścisłym, w którym działają moduły, każda taka próba rzuci błąd TypeError.
Przydaje się do stałych konfiguracji i słowników, które nie powinny być przypadkiem zmienione w innym miejscu programu.
Zamrożenie jest płytkie: zagnieżdżone obiekty nadal można zmieniać, chyba że zamrozisz je osobno. Object.isFrozen() sprawdza, czy obiekt jest zamrożony.
Składnia
#Składnia
Object.freeze(obj)Parametry
#obj
obiekt
Obiekt do zamrożenia.
Więcej przykładów
#JavaScript
const config = Object.freeze({ api: { timeout: 1000 } })
config.api.timeout = 5000
console.log(config.api.timeout)Konsola
5000
Obsługa przeglądarek
#Szeroko dostępne
Działa we wszystkich nowoczesnych przeglądarkach, także na telefonach. Możesz używać bez obaw.
- Chrome
- Edge
- Firefox
- Safari
Dobre praktyki
#constchroni tylko przypisanie zmiennej. Zawartość obiektu zablokujesz dopiero przezObject.freeze().- Do głębokiego zamrożenia trzeba przejść rekurencyjnie po zagnieżdżonych obiektach.
Powiązane hasła
#Widzisz błąd albo brakuje przykładu? Napisz do nas.