Object.assign()
इस मेथड का उपयोग एक या अधिक सोर्स ऑब्जेक्ट्स को टारगेट ऑब्जेक्ट में कॉपी करने के लिए किया जाता है। यह गेटर्स और सेटर्स को इनवोक करता है क्योंकि यह सोर्स पर 'get' और टारगेट पर 'set' दोनों का उपयोग करता है। यह टारगेट ऑब्जेक्ट लौटाता है जिसमें सोर्स ऑब्जेक्ट से कॉपी की गई प्रॉपर्टीज और मान होते हैं। यह मेथड null या undefined सोर्स मानों पर थ्रो नहीं करता।
सिंटैक्स
Object.assign(target, ...source objects);
यह सोर्स ऑब्जेक्ट्स और एक टारगेट ऑब्जेक्ट को पैरामीटर्स के रूप में लेता है और सोर्स ऑब्जेक्ट्स को टारगेट ऑब्जेक्ट में पुश करता है और टारगेट ऑब्जेक्ट प्रदर्शित करता है।
उदाहरण-1
निम्नलिखित उदाहरण में, सोर्स ऑब्जेक्ट्स "obj1", "obj2", और "obj3" की प्रॉपर्टीज को टारगेट ऑब्जेक्ट "obj" में पुश किया गया है और टारगेट ऑब्जेक्ट आउटपुट के रूप में लौटाया गया है।
<html> <body> <script> var obj1 = { a: 10, b:20 }; var obj2 = { c: 30, d:40 }; var obj3 = { e: 50 }; var obj = Object.assign({}, obj1, obj2, obj3); document.write(JSON.stringify(obj)); </script> </body> </html>
आउटपुट
{"a":10,"b":20,"c":30,"d":40,"e":50}
उदाहरण-2
निम्नलिखित उदाहरण में, ऑब्जेक्ट्स की कुछ प्रॉपर्टीज के मल्टीपल इंस्टेंसेस हैं। इस मामले में Object.assign() मेथड किसी प्रॉपर्टी का अंतिम असाइन किया गया मान लेता है। उदाहरण के लिए, सभी 3 ऑब्जेक्ट्स "obj1", "obj2", और "obj3" में प्रॉपर्टी 'c' कॉमन है और क्रमशः 1, 3 और 0 मान असाइन किए गए हैं। obj3 में प्रॉपर्टी 'c' का मान अन्य पहले से असाइन किए गए मानों 1 और 3 को ओवरराइड करता है। इसलिए यदि हम आउटपुट देखते हैं, तो प्रॉपर्टी 'c' को मान 0 असाइन किया गया है।
<html> <body> <script> var obj1 = { a: 10, b:20, c:1 }; var obj2 = { b: 30, d:10, c:3 }; var obj3 = { e: 60, d:70, c:0 }; var obj = Object.assign({}, obj1, obj2, obj3); document.write(JSON.stringify(obj)); </script> </body> </html>
आउटपुट
{"a":10,"b":30,"c":0,"d":70,"e":60}