Imutabilidade é um conceito importante, especialmente em programação funcional. Refere-se a objetos ou dados que não podem ser alterados após serem criados. Em vez de modificar o objeto ou dado original, você cria uma nova cópia com as alterações desejadas.
Quando um objeto ou dado é imutável, ele permanece constante e inalterado durante toda a sua existência. Isso traz vários benefícios, como facilitar o rastreamento de mudanças no estado do programa e evitar efeitos colaterais indesejados.
Imutabilidade é um conceito poderoso que contribui para um código mais robusto e de fácil manutenção.
const numeros = [1, 2, 3, 4, 5];
// Criando um novo array com um número adicionado, sem alterar o original
const novosNumeros = [...numeros, 6];
console.log(numeros) // [1, 2, 3, 4, 5];
console.log(novosNumeros); // [1, 2, 3, 4, 5, 6];
const pessoa = { nome: "DuH", idade: 29 }
// Criando um novo objeto com uma propriedade alterada, sem modificar o original
const novaPessoa = { ...pessoa, idade: 30 }
console.log(pessoa); // { nome: "DuH", idade: 29 }
console.log(novaPessoa); // {nome: "DuH", idade: 30 }
é uma cópia de um objeto que copia as referências dos elementos do objeto original para o novo objeto. Isso significa que, para objetos aninhados (objetos dentro de objetos), apenas as referências são copiadas, e não os objetos e si. Como resultado, se você modificar um objeto aninhado na cópia rasa, essa modificação também afetará o objeto original, pois ambos referenciam o mesmo objeto.
Em JavaScript, um shallow copy poder ser criada usando métodos como Object.assign()
para objetos ou o operador spread (…
) para arrays e objetos.