Acabei de ouvir falar dos métodos JavaScript freeze
e seal
, que podem ser usados para tornar qualquer objeto imutável.
Aqui está um pequeno exemplo de como usá-lo:
var o1 = {}, o2 = {};
Object.freeze(o2);
o1["a"] = "worked";
o2["a"] = "worked";
alert(o1["a"]); //prints "worked"
alert(o2["a"]); //prints "undefined"
Qual é a diferença entre freeze
e seal
? Eles podem aumentar o desempenho?
Object.preventExtensions
além de Object.seal
e Object.freeze
. Object.preventExtensions
apenas impede que novos itens sejam adicionados a um objeto. Você pode excluir, configurar e alterar os valores das propriedades em objetos com a extensibilidade desativada Object.preventExtensions
.