Hvordan forhindre modifisering av objekter i JavaScript

Hvordan forhindre modifisering av objekter i JavaScript

JavaScript tilbyr flere metoder for å forhindre modifisering av objekter som objekt.PreventExtensions (), objekt.forsegling (), og objekt.fryse(). Alle disse metodene sørger for at ingen kan endre funksjonaliteten til et objekt med vilje eller ved et uhell.

Dette innlegget vil beskrive de nedenfor børsnoterte metodene for å forhindre modifikasjoner av et objekt i JavaScript:

  • Gjenstand.PreventExtensions ()
  • Gjenstand.Tetning()
  • Gjenstand.fryse()

Så la oss komme i gang!

Gjenstand.PreventExtensions ()

De nedenfor-børsnoterte punktene vil forklare hva metoden forebygging () er:

  • PreventExtensions () -metoden begrenser en bruker for å legge til nye metoder eller egenskaper.
  • Det lar brukeren slette de eksisterende metodene og egenskapene
  • Det tillater brukerne å få tilgang til de eksisterende metodene/egenskapene.

Her er syntaksen til objektet.PreventExtensions () Metode:

1
Gjenstand.PreventExtensions (OBJ);

La oss vurdere kodeblokken nedenfor for å forstå hvordan fungerer PreventExtensions () -metode i JavaScript:

1
2
3
4
5
6
7
8
9
10
const empoBj =
Empname: "Dean"
;
Gjenstand.PreventExtensions (EMPOBJ);
Empobj.EmpName = "Dean Jones";
Empobj.Empid = 12;
konsoll.Logg ("Ansattes navn:", Empobj.empname);
konsoll.Logg ("Ansattes ID:", Empobj.empid);

I dette programmet,

  • Opprinnelig opprettet vi et objekt som heter “Empobj”.
  • "Empobj" -objektet har en egenskap i.e., “Empname”.
  • Deretter benyttet vi objektet.PreventExtensions () Metode for å låse “Empobj”.
  • I neste linje modifiserte vi EmpName -egenskapen i.e., Vi tildelte den en ny verdi “Dean Jones”.
  • Etterpå prøvde vi å legge til et nytt eiendomsnavn “Empid” til Empobj.
  • Endelig trykte vi begge egenskapene ved hjelp av konsollen.Log () Metode.

Utgangen bekreftet at den eksisterende egenskapen endret vellykket, men ny eiendom kan ikke legges til det begrensede/låste objektet.

Gjenstand.Tetning()

Tenk på de gitte punktene for å få den grunnleggende forståelsen av objektet.SEAL () Metode:

  • Objektet.Seal () Metode begrenser en bruker for å legge til nye metoder eller egenskaper.
  • Det begrenser brukeren til å slette de eksisterende metodene og egenskapene
  • Det tillater brukerne å få tilgang til de eksisterende metodene/egenskapene.

Her er syntaksen til objektet.PreventExtensions () Metode:

1
Gjenstand.tetning (obj);

Den undergitte kodeblokken vil forklare objektets arbeid.SEAL () I JavaScript:

1
2
3
4
5
6
7
8
const empoBj =
Empname: "Dean"
;
slett empobj.empname;
Empobj.Empid = 12;
konsoll.Logg ("Ansattes navn:", Empobj.empname);
konsoll.Logg ("Ansattes ID:", Empobj.empid);
  • Vi brukte objektet.Seal () Metode for å låse “Empobj”.
  • I neste linje prøvde vi å slette EmpName -egenskapen.
  • Etterpå prøvde vi å legge til et nytt eiendomsnavn “Empid” til Empobj.
  • Endelig trykte vi begge egenskapene ved hjelp av konsollen.Log () Metode.

Utgangen bekreftet arbeidet med Seal () -metoden i JavaScript.

Gjenstand.fryse()

Frysemetoden fryser gjenstanden fullstendig. Nedenfor punktet vil gi deg mer klarhet om Freeze () -metoden:

  • Objektet.Frys () -metoden begrenser en bruker til å legge til nye metoder/egenskaper.
  • Det begrenser brukeren til å slette de eksisterende metodene og egenskapene
  • Det begrenser brukerne til å få tilgang til de eksisterende metodene/egenskapene.

Syntaksen til objektet.PreventExtensions () -metoden vil være noe slikt:

1
Gjenstand.fryse (obj);

La oss se på kodeblokken nedenfor for å få den grunnleggende forståelsen av objektet.Frys () Metode:

1
2
3
4
5
6
7
8
9
10
11
const empoBj =
Empname: "Dean"
;
Gjenstand.fryse (empobj);
slett empobj.empname;
Empobj.EmpName = "Dean Jones";
Empobj.Empid = 12;
konsoll.Logg ("Ansattes navn:", Empobj.empname);
konsoll.Logg ("Ansattes ID:", Empobj.empid);
  • Vi brukte objektet.Frys () -metode for å låse “Empobj”.
  • Deretter prøvde vi å slette EmpName -egenskapen.
  • Deretter prøvde vi å endre den eksisterende eiendommen i.e., empname.
  • Etterpå prøvde vi å legge til et nytt eiendomsnavn “Empid” til Empobj.
  • Endelig trykte vi begge egenskapene ved hjelp av konsollen.Log () Metode.

Utgangen bekreftet at Freeze () -metoden ikke slettet EmpName -egenskapen. Den returnerte den opprinnelige eiendomsverdien i stedet for modifisert verdi. Dessuten la den ikke til den nye eiendommen “Empid”.

Konklusjon

JavaScript gir noen bygde metoder som sørger for at ingen kan endre funksjonaliteten til et objekt med vilje eller ved et uhell. For eksempel objektet.PreventExtensions (), objekt.tetning () Metoder forhindrer et objekt fra delvise modifikasjoner. Frysemetoden fryser imidlertid objektet fullstendig. Denne oppskrivningen forklarte tre forskjellige metoder for å forhindre modifikasjoner av objekter i JavaScript.