La méthode JavaScript Object.freeze () fige un objet.
Un objet figé ne peut plus être modifié. Le gel d'un objet empêche:
- Nouvelles propriétés ajoutées à l'objet.
- Propriétés existantes à supprimer de l'objet.
- Modification de l'énumérabilité, de la configurabilité ou de l'écriture des propriétés existantes.
- Modification des valeurs des propriétés d'objet et du prototype existants.
La syntaxe de la freeze()
méthode est:
Object.freeze(obj)
La freeze()
méthode, étant une méthode statique, est appelée en utilisant le Object
nom de la classe.
Paramètres freeze ()
La freeze()
méthode prend en compte:
- obj - L'objet à geler.
Valeur renvoyée par freeze ()
- L'objet qui a été passé à la fonction.
Remarques :
- Toute tentative d'ajout ou de suppression d'un ensemble de propriétés d'objets gelés échouera silencieusement ou sera rejetée
TypeError
(principalement en mode strict). - Les objets scellés avec
Object.seal()
peuvent voir leurs propriétés existantes modifiées tandis queObject.freeze()
les propriétés existantes sont immuables.
Exemple: utilisation de freeze ()
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 ))
Production
vrai vrai bar non défini
Remarque : Object.freeze(obj)
s'applique uniquement aux propriétés immédiates de obj
. Si la valeur de ces propriétés sont des objets eux-mêmes, ces objets ne sont pas figés et peuvent être la cible d'opérations d'ajout, de suppression ou de réaffectation de valeur de propriété.
Lecture recommandée: Sceau d'objet JavaScript ()