Program JavaScript za kloniranje predmeta JS

V tem primeru se boste naučili pisati program, ki klonira predmet.

Če želite razumeti ta primer, morate poznati naslednje teme programiranja JavaScript:

  • Predmeti JavaScript
  • JavaScript Object.assign ()

Objekt JavaScript je zapleten podatkovni tip, ki lahko vsebuje različne vrste podatkov. Na primer

 const person = ( name: 'John', age: 21, )

Tukaj personje predmet. Zdaj ne morete klonirati predmeta, če naredite kaj takega.

 const copy = person; console.log(copy); // (name: "John", age: 21)

V zgornjem programu ima copyspremenljivka enako vrednost kot personobjekt. Če pa spremenite vrednost copypredmeta, se personbo spremenila tudi vrednost v predmetu. Na primer

 copy.name = 'Peter'; console.log(copy.name); // Peter console.log(person.name); // Peter

Sprememba je vidna pri obeh objektih, ker sta predmeta referenčna tipa . In oba copyin personkažeta na isti predmet.

Primer 1. Klonirajte objekt s pomočjo Object.assign ()

 // program to clone the object // declaring object const person = ( name: 'John', age: 21, ) // cloning the object const clonePerson = Object.assign((), person); console.log(clonePerson); // changing the value of clonePerson clonePerson.name = 'Peter'; console.log(clonePerson.name); console.log(person.name);

Izhod

 (ime: "Janez", starost: 21) Peter Janez

Object.assign()Postopek je del ES6 standarda. Na Object.assign()metoda opravlja globoko kopiranje in kopira vse lastnosti iz enega ali več predmetov.

Opomba : Prazno ()kot prvi argument zagotavlja, da ne spremenite prvotnega predmeta.

2. primer: Klonirajte objekt s sintakso širjenja

 // program to clone the object // declaring object const person = ( name: 'John', age: 21, ) // cloning the object const clonePerson = (… person) console.log(clonePerson); // changing the value of clonePerson clonePerson.name = 'Peter'; console.log(clonePerson.name); console.log(person.name);

Izhod

 (ime: "Janez", starost: 21) Peter Janez

Sintaksa širjenja je bila uvedena v kasnejši različici (ES6).

Sintakso širjenja lahko uporabimo za plitvo kopijo predmeta. To pomeni, da bo objekt kopiral. Vendar pa se sklicujejo na globlje predmete. Na primer

 const person = ( name: 'John', age: 21, // the inner objects will change in the shallow copy marks: ( math: 66, english: 73) ) // cloning the object const clonePerson = (… person) console.log(clonePerson); // (name: "John", age: 21, marks: (… )) // changing the value of clonePerson clonePerson.marks.math = 100; console.log(clonePerson.marks.math); // 100 console.log(person.marks.math); // 100

Tukaj, ko se notranja vrednost predmeta mathse spremeni v 100 od clonePersonobjekta, je vrednost mathključa personobjekta tudi spreminja.

Primer 3: Klonirajte objekt z uporabo JSON.parse ()

 // program to clone the object // declaring object const person = ( name: 'John', age: 21, ) // cloning the object const clonePerson = JSON.parse(JSON.stringify(person)); console.log(clonePerson); // changing the value of clonePerson clonePerson.name = 'Peter'; console.log(clonePerson.name); console.log(person.name);

Izhod

 (ime: "Janez", starost: 21) Peter Janez

V zgornjem programu se JSON.parse()metoda uporablja za kloniranje predmeta.

Opomba : JSON.parse()deluje samo z dobesedno literaturo Numberin Stringobjektom. Ne deluje z dobesednim objektom z functionali symbollastnostmi.

Zanimive Članki...