JavaScript Object.freeze ()

De JavaScript-methode Object.freeze () zet een object vast.

Een bevroren object kan niet meer worden gewijzigd. Het bevriezen van een object voorkomt:

  • Er zijn nieuwe eigenschappen toegevoegd aan het object.
  • Bestaande eigenschappen die uit het object moeten worden verwijderd.
  • De opsomming, configureerbaarheid of schrijfbaarheid van bestaande eigenschappen wijzigen.
  • Veranderende waarden van de bestaande objecteigenschappen en prototype.

De syntaxis van de freeze()methode is:

 Object.freeze(obj)

De freeze()methode, die een statische methode is, wordt aangeroepen met behulp van de Objectklassenaam.

freeze () Parameters

De freeze()methode omvat:

  • obj - Het te bevriezen object.

Retourwaarde van freeze ()

  • Het object dat is doorgegeven aan de functie.

Opmerkingen :

  • Elke poging om een ​​set van vastgezette objecten toe te voegen aan of te verwijderen uit de eigenschappenreeks zal ofwel in stilte mislukken of gooien TypeError(meestal in strikte modus).
  • Voor objecten die zijn verzegeld, Object.seal()kunnen hun bestaande eigenschappen worden gewijzigd terwijl Object.freeze()de bestaande eigenschappen onveranderlijk worden gemaakt.

Voorbeeld: freeze () gebruiken

 let obj = ( prop: function () (), foo: "bar", ); let o = Object.freeze(obj); console.log(o == obj); // True -> Returns the same object console.log(Object.isFrozen(obj)); // true // changes will fail silently obj.foo = "bar1"; console.log(obj.foo); // bar // does not add silently obj.new_foo = "bar"; console.log(obj.new_foo); // undefined // Following will also throw error // Object.setPrototypeOf(obj, ( x: 20 ))

Uitvoer

 true true bar niet gedefinieerd

Let op : Object.freeze(obj)geldt alleen voor de directe eigendommen van obj. Als de waarde van die eigenschappen zelf objecten zijn, worden die objecten niet bevroren en kunnen ze het doelwit zijn van bewerkingen voor het toevoegen, verwijderen of opnieuw toewijzen van waarden.

Aanbevolen literatuur: JavaScript-objectzegel ()

Interessante artikelen...