1.9 KiB
1.9 KiB
title | localeTitle |
---|---|
Object Freeze | Congelación de objetos |
Congelación de objetos
El método Object.freeze()
congela un objeto. Un objeto congelado le impedirá :
- Añadiéndole nuevas propiedades.
- Eliminando las propiedades existentes de él.
- Cambiar la capacidad de enumeración, la capacidad de configuración o la capacidad de escritura de sus propiedades existentes
Sintaxis
Object.freeze(obj)
Parámetros
obj
- El objeto a congelar.
Devoluciones
El objeto congelado.
Nota IMPORTANTE
Si intenta agregar, eliminar o modificar las propiedades de un objeto congelado, se producirá un error. Esta falla será silenciosa o lanzará un TypeError
(si el Modo estricto está habilitado). Además, Object.freeze()
es una operación superficial. Esto significa que el objeto anidado, de un objeto congelado, es modificable.
Ejemplo
// Create your object
let person = {
name: 'Johnny',
age: 23,
guild: 'Army of Darkness',
hobbies: ['music', 'gaming', 'rock climbing']
}
// Modify your object
person.name = 'John'
person.age = 24
person.hobbies.splice(1,1)
delete person.guild
// Verify your object has been modified
console.log(person) // { name: 'John', age: 24, hobbies: ['music', 'rock climbing']
// Freeze your object
Object.freeze(person)
// Verify that your object can no longer be modified
person.name = 'Johnny' // fails silently
person.age = 23 // fails silently
console.log(person) // { name: 'John', age: 24, hobbies: ['music', 'rock climbing']
// The freeze is "shallow" and nested objects (including arrays) can still be modified
person.hobbies.push('basketball')
consol.log(person.hobbies) // ['music', 'rock climbing', 'basketball']