shrnutí: v tomto tutoriálu se naučíte kopírovat objekty v JavaScriptu, včetně mělké kopie a hluboké kopie., Kopírovat objekt v Javascriptu, máte tři možnosti:

  1. Využití šíření (...) syntaxe
  2. Použití Object.assign() metody
  3. Použití JSON.stringify() JSON.parse() metody

následující ukazuje, jak zkopírovat objekt pomocí tří výše uvedených metod:

Jak šířit (...) a Object.assign() provést mělké kopie, zatímco JSON metody provést hlubokou kopii.

mělká kopie vs., deep copy

v JavaScriptu používáte proměnné k ukládání hodnot, které mohou být primitivní nebo odkazy. Když vytvoříte kopii hodnoty uložené v proměnné, vytvoříte novou proměnnou se stejnou hodnotou. Pro primitivní hodnoty, stačí jednoduše použít jednoduchý úkol:

Code language: JavaScript (javascript)

když změníte hodnotu proměnné zkopírovány hodnoty původní zůstává stejný.

Code language: JavaScript (javascript)

Výstup:

Nicméně, pokud budete používat operátor přiřazení pro referenční hodnotu, to nebude kopírovat hodnotu., Místo toho, obě proměnné odkazují na stejný objekt v paměti:

Code language: JavaScript (javascript)

A když přístup k objektu prostřednictvím nové proměnné (copiedPerson) a změňte hodnotu jeho majetku (jméno), můžete změnit hodnotu vlastnosti objektu.

Code language: JavaScript (javascript)

Výstup:

Code language: CSS (css)

hluboké kopírování znamená, že hodnota nové proměnné je odpojen z původní proměnné, zatímco mělké kopie znamená, že některé hodnoty jsou stále připojen k původní proměnné.,

Mělké kopie příklad

Vezměme si následující příklad:

V tomto příkladu:

  • za Prvé, vytvořit nový objekt s názvem person.
  • za druhé klonujte objektperson metodouObject.assign().
  • třetí, změňte jméno a adresucopiedPerson objekt.,

výstup:

Nicméně, když si ukázat hodnoty, osoba, objekt, zjistíte, že informace o adrese změnit, ale první jméno:

Code language: JavaScript (javascript)

Výstup:

důvodem je to, že adresa je referenční hodnotu, zatímco první jméno je primitivní hodnoty. person copiedPerson odkazy na různé objekty, ale tyto objekty odkazují na stejné address objekty.,

Hluboké kopírování příklad

následující úryvek nahradí se Object.assign() metoda JSON metody provést hlubokou kopii person předmět:

Výstupní

Code language: CSS (css)

V tomto příkladu, všechny hodnoty v copiedPerson objekt je odpojen od původní person objekt. V tomto tutoriálu jste se naučili kopírovat objekty v JavaScriptu pomocí mělké nebo hluboké kopie.

  • byl tento tutoriál užitečný ?
  • YesNo