Sobes.tech
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():

  1. Creación de objetos constantes: Garantiza que el objeto no será modificado en el código posterior.
  2. Mejora del rendimiento: Algunos motores de JavaScript encuentran más fácil optimizar el acceso a objetos inmutables.
  3. 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