जावास्क्रिप्ट प्रोग्राम को क्लोन करने के लिए एक जेएस ऑब्जेक्ट

इस उदाहरण में, आप एक प्रोग्राम लिखना सीखेंगे जो ऑब्जेक्ट को क्लोन करता है।

इस उदाहरण को समझने के लिए, आपको निम्नलिखित जावास्क्रिप्ट प्रोग्रामिंग विषयों का ज्ञान होना चाहिए:

  • जावास्क्रिप्ट वस्तुओं
  • जावास्क्रिप्ट ऑब्जेक्ट .assign ()

एक जावास्क्रिप्ट ऑब्जेक्ट एक जटिल डेटा प्रकार है जिसमें विभिन्न डेटा प्रकार हो सकते हैं। उदाहरण के लिए,

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

यहाँ, personएक वस्तु है। अब, आप इस तरह से कुछ करके किसी ऑब्जेक्ट को क्लोन नहीं कर सकते।

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

उपरोक्त कार्यक्रम में, copyचर का personऑब्जेक्ट के समान मूल्य है । हालाँकि, यदि आप copyऑब्जेक्ट के मूल्य को बदलते हैं, तो ऑब्जेक्ट में मूल्य personभी बदल जाएगा। उदाहरण के लिए,

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

परिवर्तन दोनों वस्तुओं में देखा जाता है क्योंकि ऑब्जेक्ट संदर्भ प्रकार हैं । और दोनों copyऔर personएक ही वस्तु की ओर इशारा करते रहे हैं।

उदाहरण 1. 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);

आउटपुट

 (नाम: "जॉन", आयु: 21) पीटर जॉन

Object.assign()विधि का हिस्सा है ES6 मानक। Object.assign()विधि प्रदर्शन गहरी कॉपी और प्रतियां सभी एक या अधिक ऑब्जेक्ट से गुण।

नोट : ()पहले तर्क के रूप में खाली यह सुनिश्चित करता है कि आप मूल वस्तु को नहीं बदलते हैं।

उदाहरण 2: फैल सिंटैक्स का उपयोग करके वस्तु का क्लोन

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

आउटपुट

 (नाम: "जॉन", आयु: 21) पीटर जॉन

प्रसार सिंटैक्स को बाद के संस्करण (ES6) में पेश किया गया था।

प्रसार वाक्यविन्यास का उपयोग किसी वस्तु की उथली प्रतिलिपि बनाने के लिए किया जा सकता है। इसका मतलब है कि यह ऑब्जेक्ट को कॉपी करेगा। हालांकि, गहरी वस्तुओं को संदर्भित किया जाता है। उदाहरण के लिए,

 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

यहां, जब आंतरिक वस्तु का मूल्य वस्तु के 100 में mathबदल जाता है , तो वस्तु की कुंजी का मूल्य भी बदल जाता है।clonePersonmathperson

उदाहरण 3: 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);

आउटपुट

 (नाम: "जॉन", आयु: 21) पीटर जॉन

उपरोक्त कार्यक्रम में, JSON.parse()विधि का उपयोग किसी वस्तु को क्लोन करने के लिए किया जाता है।

नोट : JSON.parse()केवल शाब्दिक Numberऔर Stringवस्तु के साथ काम करता है । यह एक वस्तु के साथ काम नहीं करता है शाब्दिक functionया symbolगुणों के साथ ।

दिलचस्प लेख...