JavaScript Object.freeze ()

O método JavaScript Object.freeze () congela um objeto.

Um objeto congelado não pode mais ser alterado. Congelar um objeto evita:

  • Novas propriedades sendo adicionadas ao objeto.
  • Propriedades existentes a serem removidas do objeto.
  • Alterar a enumerabilidade, configurabilidade ou capacidade de escrita das propriedades existentes.
  • Alteração de valores das propriedades e protótipos do objeto existente.

A sintaxe do freeze()método é:

 Object.freeze(obj)

O freeze()método, sendo um método estático, é chamado usando o Objectnome da classe.

Parâmetros freeze ()

O freeze()método inclui:

  • obj - O objeto a congelar.

Valor de retorno de congelar ()

  • O objeto que foi passado para a função.

Notas :

  • Qualquer tentativa de adicionar ou remover do conjunto de propriedades de objetos congelados falhará silenciosamente ou lançará TypeError(principalmente quando no modo estrito).
  • Objetos selados com Object.seal()podem ter suas propriedades existentes alteradas enquanto Object.freeze()torna as propriedades existentes imutáveis.

Exemplo: usando 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 ))

Resultado

 true true bar indefinido

Nota : Object.freeze(obj)aplica-se apenas às propriedades imediatas de obj. Se o valor dessas propriedades são os próprios objetos, esses objetos não são congelados e podem ser o alvo de operações de adição, remoção ou reatribuição de valor.

Leitura recomendada: selo de objeto JavaScript ()

Artigos interessantes...