Congelar Profundamente Objeto

Beginner

This tutorial is from open-source community. Access the source code

Introdução

Neste laboratório, exploraremos como "deep freeze" (congelar profundamente) um objeto em JavaScript. Aprenderemos como usar o método Object.freeze() recursivamente para congelar todas as propriedades de um objeto, tornando-o imutável. Ao final deste laboratório, você terá uma melhor compreensão de como evitar modificações em objetos e garantir a integridade dos dados em seu código JavaScript.

Este é um Lab Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível iniciante com uma taxa de conclusão de 92%. Recebeu uma taxa de avaliações positivas de 100% dos estudantes.

Como Congelar Profundamente um Objeto em JavaScript

Para congelar profundamente um objeto em JavaScript, siga estes passos:

  1. Use Object.keys() para obter todas as propriedades do objeto passado.
  2. Itere sobre as propriedades usando Array.prototype.forEach().
  3. Chame Object.freeze() recursivamente em todas as propriedades que são objetos, aplicando deepFreeze() conforme necessário.
  4. Finalmente, use Object.freeze() para congelar o objeto dado.

Aqui está o código:

const deepFreeze = (obj) => {
  Object.keys(obj).forEach((prop) => {
    if (typeof obj[prop] === "object") deepFreeze(obj[prop]);
  });
  return Object.freeze(obj);
};

Você pode testar o objeto congelado profundamente usando o seguinte código:

"use strict";

const val = deepFreeze([1, [2, 3]]);

val[0] = 3; // not allowed
val[1][0] = 4; // not allowed as well

O código acima lançará um erro porque o objeto val está profundamente congelado e não pode ser modificado.

Resumo

Parabéns! Você concluiu o laboratório de "Deep Freeze Object". Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.