JavaScript · Intermediário · Inglês · Técnico
Object.freeze
Função que congela um objeto: impede adicionar, remover ou alterar propriedades próprias. O congelamento é raso, então objetos aninhados continuam mutáveis.
Onde usar
Usada para constantes de configuração e para proteger estado. Em code review, atenção: fora do strict mode a alteração falha em silêncio, enquanto no strict mode lança TypeError.
Em código
'use strict';
const o = Object.freeze({ a: 1, b: [] });
o.b.push(9); // funciona, congelamento raso
o.a = 5; // TypeError
console.log(Object.isFrozen(o)); // trueExemplos
I froze the config object so nobody changes it by accident.
Congelei o objeto de config para ninguém alterar sem querer.
Object.freeze is shallow, the nested object can still change.
O Object.freeze é raso, o objeto aninhado ainda pode mudar.
Cuidado
Achar que o congelamento é profundo: é preciso congelar recursivamente cada objeto interno.
Sinônimos
congelar