Junior
¿Qué hace el método freeze en JavaScript?
sobes.tech AI
Respuesta de la IA
El método Object.freeze() congela un objeto, evitando agregar nuevas propiedades, eliminar las existentes y modificar los valores de las propiedades existentes. También evita modificar el prototipo del objeto. Un objeto congelado permanece inmutable.
Aplicación de Object.freeze():
- Creación de objetos constantes: Garantiza que el objeto no será modificado en el código posterior.
- Mejora del rendimiento: Algunos motores de JavaScript encuentran más fácil optimizar el acceso a objetos inmutables.
- Seguridad: Protege los datos internos del objeto contra cambios accidentales o maliciosos.
Nota importante: Object.freeze() congela solo de manera superficial (congelación superficial). Si las propiedades del objeto tienen referencias a otros objetos, estos objetos anidados pueden ser modificados si no han sido congelados por separado.
Ejemplo:
const obj = {
prop1: 42,
prop2: {
nestedProp: 'hello'
}
};
Object.freeze(obj);
// Los intentos de modificar serán ignorados en modo "estricto"
// En modo no estricto, pueden no generar error, pero no se realizarán cambios
obj.prop1 = 100; // No cambiará
delete obj.prop1; // No se eliminará
obj.newProp = 'world'; // No se añadirá
console.log(obj.prop1); // 42
console.log(obj.newProp); // undefined
// El objeto anidado NO está congelado
obj.prop2.nestedProp = 'goodbye'; // Se modificará
console.log(obj.prop2.nestedProp); // goodbye