Ta strona używa ciasteczek (cookies), dzięki którym nasz serwis może działać lepiej. Dowiedz się więcej OK, rozumiem

object deep copy

Tworzenie dynamicznych stron internetowych z zastosowaniem JavaScript, jQuery, Ajax. Dowiedz się jak to zrobić, znajdź rozwiązania swoich problemów.

object deep copy

Post 24.04.2018, 19:19:44

Czesc,

Ostatnio spotkałem sie z pewnym problemem, ktorego rozwiązaniem okazalo sie deep copy obiektu. Czy moge prosic o wyjasnienie nastepującego przykladu:

Kod: Zaznacz cały
var obj = {
  zwierzeta : {
    a: "kot",
    b: "pies"
  },
    ludzie : {
    a: "Ania",
    b: "Ola"
  }
};

var newObj = Object.assign({}, obj);

console.log(newObj == obj); // false
console.log(newObj.zwierzeta == obj.zwierzeta) // true


Jak JS to interpretuje? Skoro my dwie rozne referencje, to dlaczego obiekty wewnątrz zachowują się w dosc nieprzewidywalny(?) sposob.
Prosze o kilka slow.

Pozdrawiam!
whitty
Posty: 106
Dołączył(a): 12.07.2015

Re: object deep copy

Post 24.04.2018, 19:51:48

Object.assign nie robi głębokiego klonowania, tylko właśnie płytkie, bierze "own properties" obj i przekopiowuje je do obiektu podanego w pierwszym parametrze metody assign. Dlatego porównanie obiektów położonych głębiej nadal zwraca true, ponieważ własności jako wartość mają nadal referencję do tego samego obiektu.
Avatar użytkownikakuku
Rafał Kukawski

+∞
+∞

Posty: 19767
Dołączył(a): 14.04.2002

Re: object deep copy

Post 25.04.2018, 08:52:49

Dzięki Kuku, o to mi chodziło.

Pozdrawiam!
whitty
Posty: 106
Dołączył(a): 12.07.2015


Powrót do JavaScript


 


  • Podobne wątki
    Odpowiedzi
    Wyświetlone
    Ostatni post

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości

Hosting, Domeny, SSL

Subskrypcja

Mamy 51441 zarejestrowanych użytkowników.
Najnowszy użytkownik: jonman65


Nasi użytkownicy napisali:

  • 937706 wiadomości
  • w 247435 tematach

Najnowsze wpisy na blogu

Najnowsze artykuły

Najaktywniejsi (ostatnie 30 dni)