Menu
Coddy logo textTech

O Spread Operator Parte 1

Parte da seção Lógica & Fluxo do Journey de JavaScript da Coddy — lição 18 de 65.

O operador spread (...) tem muitos casos de uso para JSON. Por exemplo, ao realizar a seguinte operação:

const obj1 = {key1: "123"}
const obj2 = obj1
obj1.key1 = "456
console.log(obj2.key1)

Qual seria a saída?

console.log(obj2.key1)
// Saída: "456"

Isso pode ser surpreendente! Embora tenhamos alterado apenas obj1, obj2 também mudou.

Isso acontece porque quando atribuímos objetos diretamente (obj2 = obj1), estamos criando uma referência, não uma cópia. Ambas as variáveis apontam para o mesmo objeto na memória.

É aqui que o operador spread se torna útil. Vamos ver como criar uma cópia real:

const obj1 = {key1: "123"};
const obj2 = {...obj1};
obj1.key1 = "456";
console.log(obj2.key1);
// Saída: "123"

O operador spread cria um novo objeto e copia todas as propriedades enumeráveis do objeto de origem para o novo.

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Folha de consulta

O operador spread (...) cria uma cópia de um objeto em vez de uma referência:

// Referência (ambas as variáveis apontam para o mesmo objeto)
const obj1 = {key1: "123"}
const obj2 = obj1
obj1.key1 = "456"
console.log(obj2.key1) // Saída: "456"
// Cópia usando o operador spread
const obj1 = {key1: "123"}
const obj2 = {...obj1}
obj1.key1 = "456"
console.log(obj2.key1) // Saída: "123"

O operador spread copia todas as propriedades enumeráveis do objeto de origem para um novo objeto.

Experimente você mesmo

Esta lição não inclui um desafio de código.

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica & Fluxo