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
Sur cette page

Exemple

#
JavaScript
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))
Console
TypeError
1
true

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

#
Syntaxe
Object.freeze(obj)

Paramètres

#
  • obj

    objet

    L’objet à geler.

Plus d’exemples

#
Le gel est superficiel
JavaScript
const config = Object.freeze({ api: { timeout: 1000 } })
config.api.timeout = 5000
console.log(config.api.timeout)
Console
5000

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

#
  • const protège seulement l’affectation de la variable. Pour verrouiller le contenu de l’objet, il faut Object.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.