JS Nesnesini Klonlamak için JavaScript Programı

Bu örnekte, bir nesneyi klonlayan bir program yazmayı öğreneceksiniz.

Bu örneği anlamak için, aşağıdaki JavaScript programlama konuları hakkında bilgi sahibi olmalısınız:

  • JavaScript Nesneleri
  • JavaScript Object.assign ()

JavaScript nesnesi, çeşitli veri türlerini içerebilen karmaşık bir veri türüdür. Örneğin,

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

İşte personbir nesne. Şimdi, böyle bir şey yaparak bir nesneyi klonlayamazsınız.

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

Yukarıdaki programda, copydeğişken personnesne ile aynı değere sahiptir . Ancak copynesnenin değerini değiştirirseniz, nesnedeki değer personde değişecektir. Örneğin,

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

Değişiklik her iki nesnede de görülür çünkü nesneler referans türleridir . Ve her ikisi de copyve personaynı nesneye işaret ediyor.

Örnek 1. Object.assign () öğesini kullanarak Nesneyi Klonlayın

 // 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);

Çıktı

 (isim: "John", yaş: 21) Peter John

Object.assign()Yöntem bir parçasıdır ES6 standart. Object.assign()Yöntem gerçekleştirdiği derin kopyalayıp bir veya birden fazla nesnelerden kopyalar tüm özellikleri.

Not : ()İlk bağımsız değişken olarak boş , orijinal nesneyi değiştirmemenizi sağlar.

Örnek 2: Yayılmış Sözdizimini Kullanarak Nesneyi Klonlayın

 // 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);

Çıktı

 (isim: "John", yaş: 21) Peter John

Yayılma sözdizimi sonraki sürümde (ES6) tanıtıldı.

Yayılma sözdizimi, bir nesnenin yüzeysel bir kopyasını oluşturmak için kullanılabilir. Bu, nesneyi kopyalayacağı anlamına gelir. Bununla birlikte, daha derin nesnelere başvurulur. Örneğin,

 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

Burada iç nesne değeri nesnenin 100'ümath olarak değiştirildiğinde , nesnenin anahtarının değeri de değişir.clonePersonmathperson

Örnek 3: JSON.parse () Kullanarak Nesneyi Klonlayın

 // 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);

Çıktı

 (isim: "John", yaş: 21) Peter John

Yukarıdaki programda, JSON.parse()yöntem bir nesneyi klonlamak için kullanılır.

Not : JSON.parse()yalnızca Numberve Stringnesne değişmeziyle çalışır . functionVeya symbolözellikleriyle değişmez bir nesne ile çalışmaz .

Ilginç makaleler...