Hvordan fryse et objekt i JavaScript

Hvordan fryse et objekt i JavaScript
Har du noen gang blitt fanget opp i en situasjon der det kreves å lage et uforanderlig JavaScript -objekt og forhindre at det endrer verdiene til eksisterende egenskaper? Hvis det er tilfelle, bruk "Gjenstand.fryse()”Metode i JavaScript -programmet ditt og gjør det til en Uforanderlig data-type.

Hva er objekt.Frys () -metode

Gjenstand.fryse()”Metode er vant til fryse en allerede erklært gjenstand og begrense alt fra manipulasjon for eksempel å legge til nye egenskaper, fjerne eksisterende egenskaper og oppdatere verdiene til de eksisterende egenskapene.

Dette innlegget vil diskutere metoden for å fryse et objekt i JavaScript. Så la oss starte!

Hvordan fryse et objekt i JavaScript

Som standard er JavaScript -objekter av “mutable”Datatype, som betyr at verdiene deres kan endres over tid. Imidlertid kan du gjøre det “Uforanderlig”Ved å erklære det som en“konstant”.

Når et objekt opprettes ved hjelp av “const”Nøkkelord, kan du fremdeles tilordne eller endre verdiene på dens egenskaper, men å være en uforanderlig datatype, tillater ikke JavaScript.

Ta en titt på følgende eksempel for å forstå det uttalte konseptet.

Eksempel

For eksempel vil vi lage et objekt som heter “ansatt”Å ha følgende egenskaper:

const ansatt =
Alder: 30,
Navn: "Alex"
;
konsoll.logg (ansatt);

Etter å ha gjort det, vil vi prøve å oppdatere verdiene til "ansatt”Objekt som en helhet:

Ansatt =
Alder: 35,
Navn: "Paul"
;
konsoll.logg (ansatt);

Som du kan se, utførelsen av den spesifiserte operasjonsutgangen en “Typeerror”Som sier at tildelingen til en allerede erklært konstant variabel er ikke mulig:

Nå vil vi sjekke den andre saken ved å tilordne en verdi til en verdi til ansatt Objektets “Navn”Eiendom:

ansatt.name = "max";
konsoll.Logg ("Etter å ha endret den ansatte.Navn eiendomsverdi ");
konsoll.logg (ansatt);

Den gitte utgangen betyr at "ansatt.Navn”Eiendomsverdien oppdateres til“Maks”:

Nå er det bevist at selv om et objekt blir "Uforanderlig”Ved hjelp av“const”Søkeord, det tillater deg fortsatt å tilordne eiendomsverdiene individuelt.

Du kan "fryse”Et objekt i en situasjon der det er nødvendig for å begrense objektet fra å oppdatere de eksisterende egenskapene eller tilsetningen av nye egenskaper.

Vil gjøre det? Følg den undergitte delen for å vite mer om frysing av et objekt i JavaScript.

Hvordan fryse et objekt i JavaScript ved hjelp av objekt.Frys () -metode

Gjenstand.fryse()”Metoden brukes til å fryse et allerede erklært objekt. Når et objekt blir fryset, forhindrer det sletting av de eksisterende objektegenskapene, tillegg av nye egenskaper, oppdatering av enumerabilitet, skrivbarhet og konfigurerbarhet av eksisterende egenskaper. Dessuten kan du ikke endre objektprototypen og verdien av de eksisterende egenskapene etter å ha fryser det relaterte objektet.

Syntaks

Gjenstand.Frys (OBJ)

Her, “obj”Representerer JavaScript -objektet som vil bli fryset ved hjelp av“Gjenstand.fryse()”Metode.

Eksempel: Hvordan fryse et objekt i JavaScript ved hjelp av objekt.Frys () -metode

Først av alt vil vi fryse "ansatt”Objekt ved å bruke“Gjenstand.fryse()”Metode:

Gjenstand.fryse (ansatt);

På tidspunktet for frysing av “ansatt”Objekt, verdien av“ansatt.alder" er "30," og "ansatt.Navn”Er satt som“Maks”:

I neste trinn vil vi bekrefte om "ansatt”Objekt er fryset eller ikke. For dette formålet tilbyr JavaScript “Gjenstand.er frossen()”Innebygd metode som godtar et JavaScript”gjenstand”Som et argument og kommer tilbake”ekte”Hvis det passerte objektet er fryset, ellers er retursaken til“Gjenstand.er frossen()”Metoden vil bli satt til“falsk”:

Gjenstand.isfrozen (ansatt);

Produksjon

Verdien som returneres av “Gjenstand.er frossen()”Metoden er“ekte,”Som indikerer at“ansatt”Objekt er vellykket fryset.

Oppdatering av frysede objektegenskaper i streng modus vs ikke-strengmodus

Nå vil vi prøve å oppdatere “ansatt.Navn”Eiendomsverdi til“Paul”:

ansatt.name = "Paul";
konsoll.logg (ansatt);

Hvis du er i "ikke-streng”Mode, da vil den spesifiserte driften av oppdateringsverdien mislykkes lydløst:

Imidlertid i tilfelle av "streng modus”, En“Typeerror”Vises også på konsollen, mens du avslutter oppdateringsoperasjonen av den frysede"ansatt”Objekt:

"bruk streng";
ansatt.name = "Paul";
konsoll.logg (ansatt);

Produksjon

Slette frysede objektegenskaper i streng modus vs ikke-strengmodus

Tilsvarende kan du ikke slette en eksisterende egenskap til et fryset objekt:

Slett ansatt.Navn;
konsoll.logg (ansatt);

Den ovennevnte koden vil prøve å fjerne “Navn”Eiendom til“ansatt”Objekt og mislykkes lydløst i”ikke-streng”Modus:

Mens i "streng modus”, En“Typeerror”Vil bli vist på konsollen, som sier at du ikke kan slette"Navn”Eiendom til“ansatt”Objekt som vi har fryset ved hjelp av“Gjenstand.fryse()”Metode:

"bruk streng";
Slett ansatt.Navn;
konsoll.logg (ansatt);

Produksjon

Det var all viktig informasjon relatert til å fryse et objekt i JavaScript. Du kan undersøke videre i henhold til dine preferanser.

Konklusjon

JavaScript Gjenstand.fryse() Metoden brukes til å fryse et deklarert objekt. Når et objekt blir fryset, forhindrer det sletting av de eksisterende objektegenskapene, tillegg av nye egenskaper, oppdatering av enumerabilitet, skrivbarhet og konfigurerbarhet av eksisterende egenskaper. Dessuten kan du ikke endre objektprototypen og verdien av de eksisterende egenskapene etter å ha fryset den. Denne oppskrivningen diskuterte metoden til fryse an gjenstand i JavaScript.