Maison >interface Web >js tutoriel >Comment créer des objets immuables en js
L'immuabilité des objets signifie que nous ne voulons pas que les objets changent de quelque manière que ce soit après leur création (les rendant en lecture seule).
Supposons que nous devions définir un objet voiture et utiliser ses propriétés tout au long du projet pour effectuer des opérations. Nous ne pouvons permettre qu’aucune donnée soit modifiée de manière incorrecte.
const myTesla = { maxSpeed: 155, batteryLife: 300, weight: 2300 };
Object.preventExtensions() Empêcher les extensions
Cette méthode empêche l'ajout de nouvelles propriétés aux objets existants, PreventExtensions() est une opération irréversible, on ne peut jamais ajouter de propriétés supplémentaires à l'objet.
Object.isExtensible(myTesla); // true Object.preventExtensions(myTesla); Object.isExtensible(myTesla); // false myTesla.color = 'blue'; console.log(myTesla.color) // undefined
Object.seal() sceaux
Il peut empêcher l'ajout ou la suppression d'attributs, seal() peut également empêcher la modification des descripteurs d'attributs.
Object.isSealed(myTesla); // false Object.seal(myTesla); Object.isSealed(myTesla); // true myTesla.color = 'blue'; console.log(myTesla.color); // undefined delete myTesla.batteryLife; // false console.log(myTesla.batteryLife); // 300 Object.defineProperty(myTesla, 'batteryLife'); // TypeError: Cannot redefine property: batteryLife
Object.freeze() se fige
Cela a le même effet que Object.seal(), mais cela rend la propriété non inscriptible.
Object.isFrozen(myTesla); // false Object.freeze(myTesla); Object.isFrozen(myTesla); // true myTesla.color = 'blue'; console.log(myTesla.color); // undefined delete myTesla.batteryLife; console.log(myTesla.batteryLife); // 300 Object.defineProperty(myTesla, 'batteryLife'); // TypeError: Cannot redefine property: batteryLife myTesla.batteryLife = 400; console.log(myTesla.batteryLife); // 300
Remarque : Si vous souhaitez qu'une erreur soit générée lorsque vous essayez de modifier un objet immuable, utilisez le mode strict.
Tutoriel recommandé : Tutoriel d'introduction à js
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!