जावास्क्रिप्ट में एक ऑब्जेक्ट क्लास है जिसमें सभी प्रकार के तरीके हैं जिनका उपयोग हम उन ऑब्जेक्ट्स में हेरफेर करने के लिए कर सकते हैं। इस लेख में, हम Object.assign() विधि पर एक नज़र डालेंगे और प्रदर्शित करेंगे कि इसका उपयोग कैसे किया जाता है।
एक छोटी सी पृष्ठभूमि
एक अनुस्मारक के रूप में एक वस्तु जावास्क्रिप्ट में एक डेटा प्रकार है, जो पायथन में शब्दकोशों के समान है, जिसे हम कुंजी कहते हैं:मूल्य जोड़े। मान लीजिए कि हमारे पास एक वस्तु है, इसे हैरी कहते हैं। इसमें कुंजी हो सकती है:मूल्य जोड़े जो इस तरह दिखते हैं:
let Harry = { firstName: 'Harry', lastName: 'Potter', age: 11, house: 'Gryffindor', pet: { name: 'Hedwig', animal: 'owl' } };
इस स्थिति में विषय का मूल नियम यह है कि कोलन के बाईं ओर संपत्ति का नाम कुंजी है, और दाईं ओर की सामग्री मान है। अधिकांश चाबियां और मूल्य काफी सीधे हैं - केवल एक ही जो थोड़ा पासा हो सकता है वह आखिरी संपत्ति है:पालतू। इस उदाहरण में पालतू अभी भी महत्वपूर्ण है। मूल्य, हालांकि, एक वस्तु है जिसमें दो और कुंजी हैं:मूल्य जोड़े। इसे हम नेस्टेड ऑब्जेक्ट कहते हैं।
ऑब्जेक्ट.असाइन (लक्ष्य, …sourceObjs);
एक ऑब्जेक्ट विधि है जिसे असाइन () . कहा जाता है जिसका उपयोग एक या अधिक स्रोत वस्तुओं को लेने और उन्हें लक्ष्य वस्तु में कॉपी करने के लिए किया जा सकता है। आइए सीधे कोड पर जाएं और देखें कि यह क्या करता है:
let hpChar = { firstName: 'Harry', lastName: 'Potter', age: 11, house: 'Gryffindor', pet: { name: 'Hedwig', animal: 'owl' } } Object.assign({}, hpChar); console.log(hpChar, '\n'); Object.assign(hpChar, { firstName: 'Hermione', lastName: 'Grainger', pet: { name: 'Crookshanks', animal: 'cat' } } ); console.log(hpChar)
आइए एक साथ कोड के माध्यम से चलते हैं। हम hpChar नामक वस्तु शाब्दिक से शुरू करते हैं। इस hpChar का पहला नाम, अंतिम नाम, आयु, घर और पालतू संपत्ति है। वह पालतू संपत्ति स्वयं एक वस्तु है और उसके पास कुछ चाबियाँ और मूल्य हैं।
इसके बाद, हमारे पास हमारी पद्धति का पहला उदाहरण है जिसके बारे में हम यहां बात कर रहे हैं। Object.assign दो या अधिक पैरामीटर लेता है। पहला है हमेशा लक्ष्य वस्तु जिसे आप मान निर्दिष्ट करना चाहते हैं। इस उदाहरण में, यह एक खाली वस्तु है।
दूसरा पैरामीटर ऊपर परिभाषित हमारी वस्तु है। यह वह स्रोत सामग्री है जिससे हम लक्ष्य वस्तु (हमारा पहला पैरामीटर) को असाइन करने जा रहे हैं।
निम्न पंक्ति परिणाम को कंसोल में लॉग करती है:
81% प्रतिभागियों ने कहा कि बूटकैंप में भाग लेने के बाद उन्हें अपनी तकनीकी नौकरी की संभावनाओं के बारे में अधिक आत्मविश्वास महसूस हुआ। आज ही एक बूटकैंप से मिलान करें।
बूटकैंप शुरू करने से लेकर अपनी पहली नौकरी खोजने तक, औसत बूटकैंप ग्रेड ने करियर संक्रमण में छह महीने से भी कम समय बिताया।
{ firstName: 'Harry', lastName: 'Potter', age: 11, house: 'Gryffindor', pet: { name: 'Hedwig', animal: 'owl' } }
कुछ भी बहुत अलग नहीं है, है ना? ऐसा इसलिए है क्योंकि हमने hpChar को एक खाली वस्तु को सौंपा है - हमने अनिवार्य रूप से वस्तु का क्लोन बनाया है। क्या होगा अगर हम इसे फिर से करें, लेकिन कुछ मूल्यों को बदल दें? इस बार खाली वस्तु के बजाय, इसे hpChar ऑब्जेक्ट से बदलें - यह इस बार हमारा लक्ष्य होगा। आइए दूसरे पैरामीटर पर कुछ मान बदलें। जब तक आप चाबियों को वही रखते हैं, तब तक मूल्यों के साथ खेलने के लिए स्वतंत्र महसूस करें।
यहां वे मान हैं जिन्हें मैं बदलने जा रहा हूं। यदि लक्ष्य ऑब्जेक्ट में मान को बदलने की आवश्यकता नहीं है, तो आपको स्रोत ऑब्जेक्ट में इसके मूल्य को स्पष्ट रूप से कॉल करने की आवश्यकता नहीं है।
Object.assign(hpChar, { firstName: 'Hermione', lastName: 'Grainger', pet: { name: 'Crookshanks', animal: 'cat' } } );
दूसरी बार जब हमने परिणाम को कंसोल में लॉग किया, तो इसने लक्ष्य वस्तु को वापस कर दिया, नए मूल्यों के साथ गुणों को अधिलेखित कर दिया। अब हमारा कंसोल इस तरह दिखता है:
{ firstName: 'Hermione', lastName: 'Grainger', age: 11, house: 'Gryffindor', pet: { name: 'Crookshanks', animal: 'cat' } }
यह वही है जो दो वस्तुओं को समान गुणों के साथ मिलाता है। अब क्या होगा अगर हम तीन वस्तुओं को अलग-अलग गुणों के साथ मिला दें? आप क्या होने की उम्मीद करते हैं?
var obj1 = { foo: 1 } var obj2 = { bar: 2 } var obj3 = { baz: 3 } Object.assign(obj1, obj2, obj3) console.log(obj1);
Obj1 हमारा लक्ष्य obj है। Obj2 और obj3 हमारी स्रोत वस्तुएं हैं। वे हमारी लक्षित वस्तु में विलीन हो जाएंगे। क्योंकि कोई भी गुण ओवरलैप नहीं होता है, सभी गुणों को उनके संबंधित मूल्यों के साथ obj1 में मिला दिया जाएगा।
{ foo: 1, bar: 2, baz: 3 }
ये लो! ऑब्जेक्ट.असाइन () का एक कार्यशील कार्यान्वयन। एक बार जब आप यहां की अवधारणाओं को समझ लेते हैं, तो आप जावास्क्रिप्ट ढांचे को सीखने के करीब एक कदम आगे बढ़ जाते हैं!
अधिक के लिए तैयार हैं?
अपने अध्ययन को आगे बढ़ाने के लिए इन ट्यूटोरियल्स पर एक नज़र डालें…
जावास्क्रिप्ट ऑब्जेक्ट.की ()
जावास्क्रिप्ट लेट के लिए चरण-दर-चरण मार्गदर्शिका
जावास्क्रिप्ट टाइपऑफ़
जावास्क्रिप्ट स्ट्रिंग में शामिल हैं:चरण-दर-चरण मार्गदर्शिका
जावास्क्रिप्ट चर