Introducción
En este laboratorio, exploraremos cómo congelar profundamente un objeto en JavaScript. Aprenderemos a usar recursivamente el método Object.freeze() para congelar todas las propiedades de un objeto, haciéndolo inmutable. Al final de este laboratorio, tendrás una mejor comprensión de cómo prevenir modificaciones a los objetos y garantizar la integridad de los datos en tu código JavaScript.
Cómo congelar profundamente un objeto en JavaScript
Para congelar profundamente un objeto en JavaScript, siga estos pasos:
- Utilice
Object.keys()para obtener todas las propiedades del objeto pasado. - Itere sobre las propiedades utilizando
Array.prototype.forEach(). - Llame recursivamente a
Object.freeze()en todas las propiedades que son objetos, aplicandodeepFreeze()si es necesario. - Finalmente, utilice
Object.freeze()para congelar el objeto dado.
Aquí está el código:
const deepFreeze = (obj) => {
Object.keys(obj).forEach((prop) => {
if (typeof obj[prop] === "object") deepFreeze(obj[prop]);
});
return Object.freeze(obj);
};
Puede probar el objeto congelado profundamente utilizando el siguiente código:
"use strict";
const val = deepFreeze([1, [2, 3]]);
val[0] = 3; // no permitido
val[1][0] = 4; // tampoco está permitido
El código anterior generará un error porque el objeto val está congelado profundamente y no se puede modificar.
Resumen
¡Felicidades! Has completado el laboratorio de Congelar Objeto Profundamente. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.