जावास्क्रिप्ट ऑब्जेक्ट .assign ()

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

assign()विधि का सिंटैक्स है:

 Object.assign(target,… sources)

assign()विधि, एक स्थिर विधि जा रहा है, का उपयोग करते हुए कहा जाता है Objectवर्ग के नाम।

असाइन () पैरामीटर

assign()विधि में लेता है:

  • लक्ष्य - लक्ष्य वस्तु - स्रोतों के गुणों को लागू करने के लिए क्या है, जो इसे संशोधित होने के बाद लौटाया जाता है।
  • स्रोत - स्रोत वस्तु (ओं) - जिन वस्तुओं को आप लागू करना चाहते हैं, वे हैं।

असाइन से वापसी मान ()

  • लक्ष्य वस्तु देता है।

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

उदाहरण 1: ऑब्जेक्ट को क्लोन और मर्ज करने के लिए Object.assign () का उपयोग करना

 // cloning objects const obj = ( name: "Alan Turing", age: 120, ); let newObject = (); const copy = Object.assign(newObject, obj); // modifies the target object console.log(newObject); // returns the modified object console.log(copy); // merging objects const o1 = ( a: 1, b: 2, c: 3 ); const o2 = ( b: 12, c: 13 ); const o3 = ( c: 23 ); // Earlier source keys are overwritten by later sources const o4 = Object.assign((), o1, o2, o3); console.log(o4); // ( a: 1, b: 12, c: 23 )

आउटपुट

 (नाम: 'एलन ट्यूरिंग', आयु: 120) (नाम: 'एलन ट्यूरिंग', आयु: 120) (a: 1, b: 12, c: 23)

यहां ध्यान दें कि यदि स्रोत मान किसी ऑब्जेक्ट का संदर्भ है, तो यह केवल संदर्भ मूल्य की प्रतिलिपि बनाता है।

इसके अलावा, बाद के स्रोतों के गुण पहले वाले को अधिलेखित कर देते हैं।

उदाहरण 2: Object.assign () का उपयोग करना

 const obj = Object.create( ( a: 1 ), ( // a is on obj's prototype chain. b: ( value: 2, // b is a non-enumerable property. ), c: ( value: 3, enumerable: true, // c is an own enumerable property. ), ) ); let copy = Object.assign((), obj); console.log(copy); // ( c: 3 ) copy = Object.assign(copy, "abc", 100, null); console.log(copy); // ( '0': 'a', '1': 'b', '2': 'c', c: 3 )

आउटपुट

 (c: 3) ('0': 'a', '1': 'b', '2': 'c', c: 3)

जैसा कि आप देख सकते हैं, प्रोटोटाइप श्रृंखला और गैर-एन्यूमरेबल गुणों पर गुणों की प्रतिलिपि नहीं बनाई जा सकती है।

इसके अलावा, आदिम वस्तुओं को लपेटा जाएगा, अशक्त और अपरिभाषित को अनदेखा किया जाएगा।

चूँकि केवल स्ट्रिंग्स में ही प्राप्य गुण होते हैं, इसलिए वे लक्ष्य ऑब्जेक्ट के लिए कॉपी किए जाते हैं।

अनुशंसित पढ़ना: जावास्क्रिप्ट ऑब्जेक्ट डिफाइनप्रोपरेटी ()

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