Object. freeze()
Gèle un objet, en bloquant l’ajout, la suppression et la modification de ses propriétés.
- Renvoie
- Le même objet, maintenant gelé.
- Modifie l’original
- Oui
Exemple
#const LEVELS = Object.freeze({ easy: 1, medium: 2, hard: 3 })
try {
LEVELS.easy = 5
} catch (error) {
console.log(error.name)
}
console.log(LEVELS.easy)
console.log(Object.isFrozen(LEVELS))Définition et utilisation
#La méthode Object.freeze() rend un objet impossible à modifier davantage : vous ne pouvez plus ajouter de nouvelles propriétés, supprimer celles qui existent, ni changer leur valeur. En mode strict, dans lequel s’exécutent les modules, toute tentative de ce genre lève une erreur TypeError.
C’est utile pour des constantes de configuration et des tables de correspondance qui ne doivent pas être modifiées par accident ailleurs dans le programme.
Le gel est superficiel : les objets imbriqués peuvent toujours être modifiés, sauf si vous les gelez séparément. Object.isFrozen() vérifie si un objet est gelé.
Syntaxe
#Object.freeze(obj)Paramètres
#obj
objet
L’objet à geler.
Plus d’exemples
#const config = Object.freeze({ api: { timeout: 1000 } })
config.api.timeout = 5000
console.log(config.api.timeout)Compatibilité des navigateurs
#Largement disponible
Fonctionne dans tous les navigateurs modernes, y compris sur mobile. Vous pouvez l’utiliser sans crainte.
- Chrome
- Edge
- Firefox
- Safari
Bonnes pratiques
#constprotège seulement l’affectation de la variable. Pour verrouiller le contenu de l’objet, il fautObject.freeze().- Pour un gel profond, il faut parcourir récursivement les objets imbriqués.
Entrées associées
#Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.