MDN page forObject.assign() में उदाहरण पॉलीफिल पहले गुणों को फिर से शुरू करने से पहले Object()
में सभी स्रोतों और लक्ष्य पैरामीटर को लपेटता है। (यानी Object(target)
, Object(source1)
, Object(source2)
...)।'ऑब्जेक्ट (लक्ष्य)' में 'ऑब्जेक्ट (लक्ष्य)' का उद्देश्य क्या है 'ऑब्जेक्ट (पासवर्ड)' पॉलीफिल
पाठ में यह भी उल्लेख किया गया है कि लक्ष्य को वापस करने से पहले अतिरिक्त गुण सीधे लक्ष्य में जोड़े गए हैं। हालांकि, Object()
में लक्ष्य को लपेटने से ऑब्जेक्ट में परिणाम होता है जो गुणों को बढ़ाने के अलावा अलग होता है। (यानी Object(target).newProp !== target.newProp
)।
दिए गए सभी उदाहरणों में Object.assign()
पर पैरामीटर के रूप में ऑब्जेक्ट्स हैं। गैर-ऑब्जेक्ट स्रोत या लक्ष्य पैरामीटर के लिए उपयोग-केस इसलिए स्पष्ट नहीं है।
ए)Object()
में पैरामीटर को लपेटने का उद्देश्य क्या है? (मैं इस धारणा के तहत हूं कि Object.keys(x)
Object.keys(Object(x))
जैसा ही है)।
बी) गैर-ऑब्जेक्ट्स के साथ Object.assign()
का उपयोग करने के लिए संभावित उपयोग के मामले क्या हैं, है ना? (के लिए की तरह उदाहरण के कुछ: Object.assign(1, 'b', [3], true, function(){})
)
'ऑब्जेक्ट (लक्ष्य) 'किसी ऑब्जेक्ट में लक्ष्य को रोकता है। उदाहरण के लिए: 'ऑब्जेक्ट ("1234")' इसे '[ऑब्जेक्ट स्ट्रिंग] {0: "1", 1: "2", 2: "3", 3: "4", लंबाई: 4} ' – Mouser
पर रखता है आमतौर पर पॉलीफिल के संयोजन के साथ विनिर्देश को पढ़ने के लिए सबसे अच्छा है, क्योंकि वे अक्सर व्यवहार को दोहराने की कोशिश करते हैं। आप [* एड से देख सकते हैं। 6 मसौदा *] (https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign), कि प्रत्येक तर्क * ToObject * को पास किया जाता है। चूंकि देशी स्क्रिप्ट आंतरिक तरीकों तक नहीं पहुंच पाती है, इसलिए 'ऑब्जेक्ट (लक्ष्य)' और 'ऑब्जेक्ट (स्रोत)' को कॉल करना एक अनुमान है (हालांकि ठीक वही नहीं है, खासकर * शून्य * और * अपरिभाषित * के लिए)। – RobG
@ मूसर। मैं समझता हूं कि ऑब्जेक्ट() क्या करता है। जो मुझे समझ में नहीं आता है वह है कि आप कभी ऑब्जेक्ट.साइन ([], 'ए', 3, फ़ंक्शन() {}) – Hurelu