नॉन-एनुमरेबल प्रॉपर्टी
ऑब्जेक्ट्स में ऐसी प्रॉपर्टीज हो सकती हैं जो Object.keys() या for...in लूप का उपयोग करके विशेष ऑब्जेक्ट के माध्यम से इटरेट करने पर दिखाई नहीं देतीं। इस प्रकार की प्रॉपर्टीज को नॉन-एनुमरेबल प्रॉपर्टीज कहा जाता है।
नॉन-एनुमरेबल प्रॉपर्टी बनाना
नॉन-एनुमरेबल प्रॉपर्टी बनाने के लिए हमें Object.defineProperty() मेथड का उपयोग करना होगा। यह ऑब्जेक्ट में नॉन-एनुमरेबल प्रॉपर्टीज बनाने का एक विशेष मेथड है।
निम्न उदाहरण में, नाम, आयु और देश जैसी तीन प्रॉपर्टीज सामान्य रूप से बनाई गईं और "वेतन" नामक एक प्रॉपर्टी Object.defineProperty() मेथड का उपयोग करके बनाई गई और एनुमरेबल नामक कुंजी को false निर्दिष्ट किया गया। जब ऑब्जेक्ट "person" को Object.keys() का उपयोग करके इटरेट किया गया तो नाम, आयु और देश जैसी प्रॉपर्टीज दिखाई दीं जबकि "वेतन" प्रॉपर्टी दिखाई नहीं दी। चूंकि वेतन प्रॉपर्टी दिखाई नहीं दी, इसे नॉन-एनुमरेबल प्रॉपर्टी कहा जाता है। यह नॉन-एनुमरेबल प्रॉपर्टीज बनाने का तरीका है। Object.defineProperty() आपको रीड-ओनली प्रॉपर्टीज बनाने की भी अनुमति देता है जैसा कि हमने नीचे देखा, हम person ऑब्जेक्ट के वेतन मान को संशोधित नहीं कर सकते। वेतन प्रॉपर्टी को एनुमरेबल बनाने के लिए एनुमरेबल नामक कुंजी को true निर्दिष्ट करें।
उदाहरण
<html> <body> <script> var person = { name: 'gopal' }; person.age = '21'; person['country'] = 'India'; Object.defineProperty(person, 'salary',{ value : '80,000$', enumerable: false }) document.write(Object.keys(person)); </script> </body> </html>