Yhteenveto: tämä opetusohjelma, opit, miten voit kopioida esineitä JavaScript, mukaan lukien matala kopio ja syvä kopio., Kopioi objekti JavaScript, sinulla on kolme vaihtoehtoa:

  1. Käytä leviäminen (...) syntaksi
  2. Käytä Object.assign() tapa
  3. Käytä JSON.stringify() ja JSON.parse() menetelmät

seuraavassa kuvataan, miten voit kopioida objektin käyttämällä kolmea edellä mainittuja menetelmiä:

Molemmat leviäminen (...) ja Object.assign() suorita matala kopio, kun taas JSON-menetelmiä kuljettaa syvä kopio.

Shallow copy vs., Deep copy

Javascriptissä käytetään muuttujia, jotka tallentavat arvoja, jotka voivat olla alkeellisia tai viittauksia. Kun teet kopion muuttujaan tallennetusta arvosta, luot uuden muuttujan, jolla on sama arvo. Alkeellinen arvo, vain yksinkertaisesti käyttää yksinkertainen tehtävä:

Code language: JavaScript (javascript)

kun muutat arvo kopioidaan muuttujan arvo alkuperäinen pysyy samana.

Code language: JavaScript (javascript)

tuloksena on:

Kuitenkin, jos voit käyttää tehtävän operaattori, viittaus arvo, se ei kopioi arvo., Sen sijaan molemmat muuttujat viittaavat samaan objektiin muisti:

Code language: JavaScript (javascript)

– Ja kun käyttää-objekti kautta uusi muuttuja (copiedPerson) ja muuta arvo-omaisuuttaan (nimi), voit vaihtaa omaisuuden arvo esine.

Code language: JavaScript (javascript)

tuloksena on:

Code language: CSS (css)

syvä kopiointi tarkoittaa sitä, että arvo uusi muuttuja on irrotettu alkuperäisestä muuttuja, kun taas matala kopio tarkoittaa sitä, että jotkut arvot ovat edelleen yhteydessä alkuperäinen muuttuja.,

Matala kopio esimerkki

Harkitse seuraava esimerkki:

tässä esimerkki:

  • Ensimmäinen, luoda uuden objektin nimeltä person.
  • Toiseksi, klooni person objektin Object.assign() menetelmä.
  • kolmas, vaihdacopiedPerson objektin etunimi-ja osoitetiedot.,

Tässä on output:

Kuitenkin, kun voit näyttää arvoja, henkilö, objekti, tulet huomaamaan, että osoitetiedot muuttunut, mutta ensimmäinen nimi:

Code language: JavaScript (javascript)

tuloksena on:

syynä on se, että osoite on viitearvo, kun ensimmäinen nimi on alkeellinen arvo. Molemmat person ja copiedPerson viittauksia eri esineitä, mutta nämä esineet viittaavat samaan address objektit.,

Syvä kopio esimerkki

seuraava pätkä korvaa Object.assign() menetelmä JSON menetelmiä kuljettaa syvä kopio person tavoite:

Lähtö

Code language: CSS (css)

tässä esimerkissä, kaikki arvot copiedPerson esine on irrotettu alkuperäisestä person objekti. Tässä opetusohjelma, olet oppinut kopioida esineitä JavaScript käyttäen joko matala tai syvä kopio.

  • Auttoiko tämä opetusohjelma ?
  • YesNo