Istnieje wiele sposobów uczynienia obiektu niezmiennego, na przykład używanie słowa kluczowego „const”, płytkie zamrożenie i głębokie zamrażanie.
Ten zapis ma jasne zrozumienie następujących pojęć:
Zrozumiemy każdą z wyżej wymienionych pojęć poprzez praktyczne przykłady. Więc zacznijmy!
Jaka jest potrzeba płytkiego zamrożenia?
Poniższe powody zmuszają nas do wdrożenia płytkiego zamrożenia lub głębokiego zamrożenia:
Przykład: Identyfikacja problemu
Ten program określi, dlaczego „const”Słowo kluczowe nie jest dobrym podejściem do uczynienia obiektów niezmiennymi.
const empDetails = First: „Alex”, drugi: „John”, trzeci: „Mike”, czwarty: „Joe”, Fifth: „Seth”;Wyjście zweryfikowało, że słowo kluczowe „const” nie zapobiegło modyfikacji obiektu. Do rozwiązania/rozwiązania tego problemu można zastosować płytkie podejście do zamrażania.
Co oznacza płytka zamrożenie w JavaScript?
Obiekt.Metoda freeze () może całkowicie zamrozić obiekt. Obiekt.Freeze () Metoda ogranicza użytkownika do dodawania, usuwania lub modyfikowania obiektu. Ponadto ogranicza użytkownikom dostęp do istniejących metod/właściwości obiektu.
Przykład: Implementacja obiektu.Metoda Freeze ()
Rozważmy poniżej przekazany kod, aby uzyskać podstawowe zrozumienie obiektu.Freeze () Metoda:
Wyjście wyjaśniło, że obiekt.Metoda freeze () nie zezwala na modyfikacje obiektu.
Jaka jest potrzeba głębokiego zamrażania w JavaScript?
Powyższy przykład pokazuje, że podejście płytkiego zamrażania z powodzeniem zapobiega modyfikowaniu obiektu. Mimo to nie jest to uważane za najlepsze podejście. Wynika to z faktu, że podejście płytkiego zamrażania zamraża tylko dany obiekt. Jeśli jednak obiekt zawiera niektóre zagnieżdżone obiekty lub tablice, to w takich sytuacjach zagnieżdżone obiekty mogą być nadal aktualizowane.
Jak więc radzić sobie z zagnieżdżonymi przedmiotami? Dobrze! W takim przypadku możemy użyć koncepcji głębokiego zamrożenia.
Co oznacza głębokie zamrożenie w JavaScript?
Musisz wykonać kroki poniżej na liście, aby zastosować głębokie zamrożenie do obiektu:
Praktyczne wdrożenie głębokiego zamrożenia w JavaScript
Poniższy program pozwoli ci zrozumieć, jak głęboko zamrozić obiekt w JavaScript:
const empdetails =W tym programie przyjęliśmy rekurencyjne podejście do zamrażania własności każdego obiektu. Aby to zrobić, początkowo sprawdziliśmy, czy wartość dowolnej właściwości jest obiektem, czy nie. Kiedy stwierdziliśmy, że właściwość jest obiektem, sprawdziliśmy, czy jest zamrożona, czy nie. Jeśli wartość dowolnej właściwości jest obiektem i nadal nie jest zamrożona, wówczas wywołujemy obiekt.Freeze () Metoda tej właściwości rekurencyjnie.
Z powyższego wyjścia jasno wynika, że podejście głębokiego zamrażania zapobiega modyfikowaniu obiektu.
Wniosek
W JavaScript płytkie podejścia zamrażania i głębokie zamrożenie sprawiają, że obiekt jest niezmienny/nie-modyfikowalny. Różnica między płytkim zamrożeniem a głębokim zamrożeniem polega na tym, że płytkie zamrażanie nie dotyczy zagnieżdżonych obiektów/tablic. Z drugiej strony podejście głębokiego zamrażania można użyć do całkowitego zamrożenia obiektu, w tym zagnieżdżonych obiektów/tablic. Ten zapis wyjaśnił działanie płytkiego zamrożenia i głębokiego zamrożenia za pomocą odpowiednich przykładów.