Valores primitivos e Valores por referência
Os valores por referência em JavaScript são mutáveis. Ao atribuir uma variável A
que armazena um tipo por referência (object
, array
, function
, etc.) a uma variável B
, B
armazenará a referência para esse valor. Portanto, se uma das variáveis tiver seu valor alterado, a outra também sofrerá essa alteração.
let a = [1, 2, 3];
let b = a;
console.log(a, b); // [ 1, 2, 3 ] [ 1, 2, 3 ]
a.push(4);
console.log(a, b); // [ 1, 2, 3, 4 ] [ 1, 2, 3, 4 ]
Neste exemplo, ambas as variáveis a
e b
apontam para o mesmo array na memória. Quando adicionamos o valor 4 ao array através da variável a
, a variável b
também reflete essa alteração.