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
Na tej stronie

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

#
Zamrożenie jest płytkie
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

#
  • const chroni tylko przypisanie zmiennej. Zawartość obiektu zablokujesz dopiero przez Object.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.