"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > जावास्क्रिप्ट में विरासत में मिली गैर-गणना योग्य संपत्तियों को कैसे पुनः प्राप्त करें?

जावास्क्रिप्ट में विरासत में मिली गैर-गणना योग्य संपत्तियों को कैसे पुनः प्राप्त करें?

2024-11-13 को प्रकाशित
ब्राउज़ करें:263

How to Retrieve Inherited Non-Enumerable Properties in JavaScript?

विरासत में मिले गैर-गणना योग्य गुणों को पुनः प्राप्त करना

जावास्क्रिप्ट में, ऑब्जेक्ट गुणों तक पहुंच विशिष्ट आवश्यकताओं के अनुरूप विभिन्न तरीकों पर निर्भर करती है। हालाँकि, जब गैर-गणना योग्य, गैर-स्वामित्व वाली संपत्तियों को प्राप्त करने की बात आती है, तो कोई सीधी व्यवस्था नहीं है।

इसे संबोधित करने के लिए, एक कस्टम फ़ंक्शन का उपयोग किया जा सकता है जो गैर-गणना योग्य संपत्तियों को प्राप्त करने के लिए ऑब्जेक्ट.getOwnPropertyNames() को जोड़ता है। और विरासत में मिले प्रोटोटाइप को पुनः प्राप्त करने के लिए प्रोटोटाइप श्रृंखला पर चलता है।

function getAllProperties(obj) {
  var allProps = [], curr = obj;
  do {
    var props = Object.getOwnPropertyNames(curr);
    props.forEach(function(prop) {
      if (allProps.indexOf(prop) === -1)
        allProps.push(prop);
    });
  } while (curr = Object.getPrototypeOf(curr));
  return allProps;
}

console.log(getAllProperties([1, 2, 3]));

इस उदाहरण में, [1, 2, 3] एक विरासत में मिली संपत्ति है, और फ़ंक्शन इसकी गणना स्थिति को प्राप्त किए बिना इसे सफलतापूर्वक पुनर्प्राप्त करता है। यह दृष्टिकोण डेवलपर्स को गैर-गणना योग्य विरासत में मिली संपत्तियों तक पहुंचने की क्षमता प्रदान करता है, जो प्रोटोटाइप और ऑब्जेक्ट विरासत से जुड़े कुछ परिदृश्यों के लिए महत्वपूर्ण है।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3