Det er flere måter å gjøre et objekt uforanderlig, for eksempel å bruke "const" nøkkelord, grunt frysing og dyp frysing.
Denne oppskrivningen tar sikte på å presentere en klar forståelse av følgende konsepter:
Vi vil forstå hvert av konseptene som er nevnt ovenfor gjennom praktiske eksempler. Så la oss komme i gang!
Hva er behovet for en grunt frysing?
De nedenfor-børsnoterte grunnene tvinger oss til å implementere den grunne frysingen eller dypfrysingen:
Eksempel: Problemidentifikasjon
Dette programmet vil identifisere hvorfor “const”Nøkkelord er ikke en god tilnærming for å gjøre objekter uforanderlig.
const empdetails = først: "Alex", andre: "John", tredje: "Mike", fjerde: "Joe", femte: "seth";Utgangen bekreftet at "const" -nøkkelordet ikke klarte å forhindre at et objekt ble endret. Den grunne frysetilnærmingen kan brukes til å løse/fikse dette problemet.
Hva betyr grunt frysing i JavaScript?
Objektet.Frys () -metoden kan fryse et objekt fullstendig. Objektet.Frys () -metoden begrenser en bruker fra å legge til, slette eller endre objektet. Videre begrenser det brukerne fra å få tilgang til et objekts eksisterende metoder/egenskaper.
Eksempel: Implementering av objekt.Frys () -metode
La oss vurdere den undergitte koden for å få en grunnleggende forståelse av objektet.Frys () Metode:
Utgangen avklarte at objektet.Frys () -metoden tillater ikke endringer i objektet.
Hva er behovet for dypfrysingen i JavaScript?
Eksemplet ovenfor viser at den grunne frysetilnærmingen vellykket forhindrer at objektet endrer seg. Likevel regnes det ikke som den beste tilnærmingen. Dette er fordi den grunne frysetilnærmingen bare fryser det gitte objektet. Imidlertid, hvis objektet inneholder noen nestede objekter eller matriser, kan de fortsatt oppdateres i slike situasjoner.
Så hvordan du skal takle nestede gjenstander? Vi vil! I et slikt tilfelle kan vi bruke begrepet dypfrysing.
Hva betyr dypfrysing i JavaScript?
Du må følge trinnene nedenfor for å påføre den dype frysen på et objekt:
Praktisk implementering av Deep Freeze i JavaScript
Det undergitte programmet lar deg forstå hvordan du kan fryse et objekt i JavaScript:
const empdetails =I dette programmet vedtok vi den rekursive tilnærmingen for å fryse hver gjenstands eiendom. For å gjøre det, sjekket vi til å begynne med om verdien av noen eiendommer er et objekt eller ikke. Da vi fant ut at en eiendom er et objekt, så sjekket vi om den er frosset eller ikke. Hvis verdien av noen egenskap er et objekt og fremdeles ikke er frosset, påkaller vi objektet.Frys () -metode på den egenskapen rekursivt.
Fra ovennevnte utgang er det klart at den dype frysetilnærmingen forhindrer at objektet blir endret.
Konklusjon
I JavaScript gjør de grunne fryse- og dype tilnærminger til et objekt uforanderlig/ikke-modifiserbar. Forskjellen mellom grunt frysing og dyp frysing er at den grunne frysen ikke tar for seg de nestede objektene/matriser. På den annen side kan den dype frysetilnærmingen brukes til å fryse et objekt fullstendig inkludert de nestede objektene/matriser. Denne oppskrivningen forklarte arbeidet med grunne frys og dypfrysing ved hjelp av passende eksempler.