Existem várias maneiras de tornar um objeto imutável, como usar a palavra -chave "const", congelamento raso e congelamento profundo.
Este artigo tem como objetivo apresentar um entendimento claro dos seguintes conceitos:
Vamos entender cada um dos conceitos mencionados acima através de exemplos práticos. Então vamos começar!
Qual é a necessidade de um congelamento raso?
Os motivos abaixo listados nos obrigam a implementar o congelamento superficial ou o congelamento profundo:
Exemplo: Identificação do Problema
Este programa identificará por que o “const”A palavra -chave não é uma boa abordagem para tornar os objetos imutáveis.
const empidetails = primeiro: "Alex", segundo: "John", terceiro: "Mike", quarto: "Joe", quinto: "Seth";A saída verificou que a palavra -chave "const" falhou em impedir que um objeto fosse modificado. A abordagem de congelamento superficial pode ser usada para resolver/corrigir este problema.
O que significa congelamento raso em javascript?
O objeto.o método Freeze () pode congelar completamente um objeto. O objeto.O método Freeze () restringe um usuário de adicionar, excluir ou modificar o objeto. Além disso, restringe os usuários de acessar os métodos/propriedades existentes de um objeto.
Exemplo: implementação do objeto.Método Freeze ()
Vamos considerar o código abaixo para obter uma compreensão básica do objeto.Método Freeze ():
A saída esclareceu que o objeto.O método Freeze () não permite modificações no objeto.
Qual é a necessidade do congelamento profundo em JavaScript?
O exemplo acima mostra que a abordagem de congelamento superficial impede com sucesso o objeto de modificar. Ainda assim, não é considerado a melhor abordagem. Isso ocorre porque a abordagem de congelamento superficial apenas congela o objeto fornecido. No entanto, se o objeto contiver alguns objetos ou matrizes aninhados, em tais situações, os objetos aninhados ainda poderão ser atualizados.
Então, como lidar com objetos aninhados? Bem! Nesse caso, podemos usar o conceito de congelamento profundo.
O que significa congelamento profundo em javascript?
Você deve seguir as etapas listadas abaixo para aplicar o congelamento profundo a um objeto:
Implementação prática do congelamento profundo em JavaScript
O programa abaixo dado permitirá que você entenda como congelar profundamente um objeto no JavaScript:
const empDetails =Neste programa, adotamos a abordagem recursiva para congelar a propriedade de todos os objetos. Para fazer isso, inicialmente, verificamos se o valor de qualquer propriedade é um objeto ou não. Quando descobrimos que uma propriedade é um objeto, verificamos se está congelado ou não. Se o valor de qualquer propriedade for um objeto e ainda não estiver congelado, então invocamos o objeto.Freeze () Método nessa propriedade recursivamente.
A partir da saída acima, fica claro que a abordagem de congelamento profundo impede que o objeto seja modificado.
Conclusão
Em JavaScript, o congelamento raso e as abordagens de congelamento profundo tornam um objeto imutável/não modificável. A diferença entre congelamento superficial e congelamento profundo é que o congelamento raso não lida com os objetos/matrizes aninhados. Por outro lado, a abordagem de congelamento profundo pode ser usada para congelar completamente um objeto, incluindo os objetos/matrizes aninhados. Este artigo explicou o funcionamento de congelamento superficial e congelamento profundo com a ajuda de exemplos adequados.