2016-10-19 6 views
7

में मूल्य निर्दिष्ट नहीं है मुझे जावास्क्रिप्ट में ऑब्जेक्ट्स निर्दिष्ट करने में एक छोटी समस्या है।जावास्क्रिप्ट

इस नमूना कोड को देखें जो मेरी समस्या को दोहराता है।

var fruit = { 
    name: "Apple" 
}; 

var vegetable = fruit; 
vegetable.name = "potatoe"; 
console.log(fruit); 

यह लॉग

Object {name: "potatoe"} 

मैं नहीं मूल्य किसी अन्य वस्तु के लिए एक वस्तु के संदर्भ कैसे प्रदान कर सकते हैं?

+0

वस्तु की एक कॉपी बनाएं - एक आसान तरीका है: 'वर सब्जी = JSON.parse (JSON.stringify (फल));' – tymeJV

+0

* मैं किसी ऑब्जेक्ट का संदर्भ किसी अन्य ऑब्जेक्ट पर संदर्भित नहीं कर सकता हूं? *। आप जावास्क्रिप्ट ऐसा काम नहीं कर सकते हैं। आपका एकमात्र विकल्प ऑब्जेक्ट को कॉपी करना है क्योंकि @tymeJV कहते हैं। – Liam

+0

इस SO प्रश्न को देखें: http://stackoverflow.com/questions/12690107/clone-object-without-reference-javascript – Koen

उत्तर

15

आप का उपयोग Object.assign कर सकते हैं:

var fruit = { 
 
    name: "Apple" 
 
}; 
 

 
var vegetable = Object.assign({}, fruit); 
 
vegetable.name = "potatoe"; 
 
console.log(fruit);

+0

नोट, यह मान असाइन नहीं करता है (ओपी चाहता है) लेकिन इसे कॉपी करता है नई वस्तु सूक्ष्म लेकिन कभी-कभी महत्वपूर्ण भेद – Liam

+1

क्या आप कृपया इस 'असाइन' कॉल को थोड़ा समझा सकते हैं? पहली तर्क में उस खाली वस्तु क्या है? –

+1

@ मुबाररअब्बास [यहां देखें] (https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign) – Liam

संबंधित मुद्दे