El método JavaScript Object.freeze () congela un objeto.
Ya no se puede cambiar un objeto congelado. Congelar un objeto evita:
- Nuevas propiedades que se agreguen al objeto.
- Propiedades existentes que se eliminarán del objeto.
- Cambiar la enumerabilidad, configurabilidad o escritura de propiedades existentes.
- Cambiar los valores de las propiedades y el prototipo del objeto existente.
La sintaxis del freeze()
método es:
Object.freeze(obj)
El freeze()
método, al ser un método estático, se llama utilizando el Object
nombre de la clase.
congelar () Parámetros
El freeze()
método incluye:
- obj: objeto a congelar.
Valor de retorno de congelar ()
- El objeto que se pasó a la función.
Notas :
- Cualquier intento de agregar o eliminar de un conjunto de propiedades de objetos congelados fallará silenciosamente o se lanzará
TypeError
(principalmente cuando esté en modo estricto). - Los objetos sellados con
Object.seal()
pueden cambiar sus propiedades existentes mientrasObject.freeze()
hace que las propiedades existentes sean inmutables.
Ejemplo: usar 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 ))
Salida
true true bar indefinido
Nota : Object.freeze(obj)
solo se aplica a las propiedades inmediatas de obj
. Si el valor de esas propiedades son objetos en sí mismos, esos objetos no se congelan y pueden ser objeto de operaciones de adición, eliminación o reasignación de valor.
Lectura recomendada: sello de objeto JavaScript ()