जावास्क्रिप्ट के साथ काम करते समय, वस्तुओं और सरणियों के प्रभावी हेरफेर के लिए उथली प्रतिलिपि और गहरी प्रतिलिपि के बीच अंतर को समझना आवश्यक है। आइए देखें कि इन शब्दों का क्या अर्थ है और अपने कोड में प्रत्येक प्रकार की प्रतिलिपि को कैसे लागू किया जाए।
उथली प्रतिलिपि
एक उथली प्रतिलिपि एक नई वस्तु या सरणी बनाती है जिसमें मूल के समान मान होते हैं। हालाँकि, यदि मूल में नेस्टेड ऑब्जेक्ट या सरणियाँ हैं, तो उथली प्रतिलिपि केवल इन नेस्टेड संरचनाओं के संदर्भों की प्रतिलिपि बनाती है, न कि स्वयं संरचनाओं की। इसका मतलब है कि कॉपी की गई संरचना में नेस्टेड ऑब्जेक्ट या सरणियों में परिवर्तन भी मूल को प्रभावित करेगा।
उथली प्रतिलिपि विधियों के उदाहरण:
const original = { a: 1, b: { c: 2 } }; const shallowCopy = { ...original };
यहाँ, शैलोकॉपी एक नई वस्तु है, लेकिन शैलोकॉपी.बी अभी भी मूल.बी. के समान ऑब्जेक्ट को संदर्भित करता है।
2.ऑब्जेक्ट.असाइन()
const shallowCopy = Object.assign({}, original);
const originalArray = [1, 2, 3]; const shallowCopyArray = originalArray.slice();
डीप कॉपी
एक गहरी प्रतिलिपि एक नई वस्तु या सरणी बनाती है जो मूल का एक पूर्ण, स्वतंत्र क्लोन है, जिसमें सभी नेस्टेड ऑब्जेक्ट और सरणी शामिल हैं। डीप कॉपी में परिवर्तन मूल को प्रभावित नहीं करते हैं और इसके विपरीत भी।
डीप कॉपी विधियों के उदाहरण:
const original = { a: 1, b: { c: 2 } }; const deepCopy = JSON.parse(JSON.stringify(original));
यह विधि ऑब्जेक्ट को JSON स्ट्रिंग में क्रमबद्ध करती है और फिर इसे एक नई ऑब्जेक्ट पर वापस पार्स करती है। हालाँकि, यह फ़ंक्शंस, अपरिभाषित, या परिपत्र संदर्भों को संभाल नहीं पाता है।
2.पुनरावर्ती कार्य
function deepCopy(obj) { if (obj === null || typeof obj !== 'object') return obj; const copy = Array.isArray(obj) ? [] : {}; for (let key in obj) { if (obj.hasOwnProperty(key)) { copy[key] = deepCopy(obj[key]); } } return copy; }
const deepCopy = structuredClone(original);
प्रत्येक का उपयोग कब करें
उथली प्रतिलिपि: नेस्टेड संरचनाओं के बिना सरल वस्तुओं या सरणियों के लिए उपयुक्त। यह तेज़ है और कम मेमोरी का उपयोग करता है। जब आपको एक त्वरित प्रतिलिपि की आवश्यकता हो तो इसका उपयोग करें जहां नेस्टेड ऑब्जेक्ट में परिवर्तन मूल और प्रतिलिपि दोनों में प्रतिबिंबित होना चाहिए।
डीप कॉपी: नेस्टेड संरचनाओं के साथ जटिल वस्तुओं या सरणियों के लिए आवश्यक। यह सुनिश्चित करता है कि प्रतिलिपि में परिवर्तन मूल को प्रभावित न करें। जब आपको पूरी तरह से स्वतंत्र क्लोन की आवश्यकता हो तो इसका उपयोग करें।
इन अंतरों को समझने से अनपेक्षित साझा संदर्भों से उत्पन्न होने वाली बग को रोकने में मदद मिलती है और आपके अनुप्रयोगों में डेटा अखंडता सुनिश्चित होती है
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3