Menu
Coddy logo textTech

Operator spread — część 1

Część sekcji Logika i przepływ programu ścieżki JavaScript w Coddy. Lekcja 18 z 65.

Operator rozproszenia (...) ma wiele zastosowań w JSON. Na przykład podczas wykonywania następującej operacji:

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

Jaki będzie wynik?

console.log(obj2.key1)
// Wynik: "456"

To może być zaskakujące! Mimo że zmieniliśmy tylko obj1, zmienił się również obj2.

Dzieje się tak, ponieważ gdy przypisujemy obiekty bezpośrednio (obj2 = obj1), tworzymy odwołanie, a nie kopię. Obie zmienne wskazują na ten sam obiekt w pamięci.

W tym miejscu przydaje się operator rozpraszania. Zobaczmy, jak utworzyć prawdziwą kopię:

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

Operator rozsz spread tworzy nowy obiekt i kopiuje do niego wszystkie wyliczalne właściwości obiektu źródłowego.

Spróbuj swoich sił

Ta lekcja nie zawiera wyzwania z kodem.

quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ programu

Poćwicz samodzielnie: Kompilator JavaScript online