हम डॉट (.) और ब्रैकेट [] नोटेशन का उपयोग करके किसी ऑब्जेक्ट की प्रॉपर्टी को परिभाषित कर सकते हैं। इसके अलावा Object.defineProperty() मेथड का उपयोग करके भी प्रॉपर्टी को परिभाषित किया जाता है। यह आमतौर पर 3 पैरामीटर लेता है: ऑब्जेक्ट का नाम, प्रॉपर्टी का नाम, और प्रॉपर्टी डिस्क्रिप्टर।
सिंटैक्स
Object.defineProperty(ऑब्जेक्ट नाम, प्रॉपर्टी नाम, प्रॉपर्टी डिस्क्रिप्टर)
आइए इस मेथड से एक प्रॉपर्टी को परिभाषित करते हैं।
उदाहरण
निम्न उदाहरण में, प्रारंभ में ऑब्जेक्ट में केवल एक प्रॉपर्टी 'one' होती है। बाद में 'two' नामक एक और प्रॉपर्टी जोड़ी जाती है। जब हम सभी प्रॉपर्टीज़ को प्रदर्शित करने का प्रयास करते हैं, तो केवल पहली प्रॉपर्टी प्रदर्शित होती है, जोड़ी गई प्रॉपर्टी नहीं, जैसा कि आउटपुट में दिखाया गया है।
<html> <body> <script> var object = {one: 1}; Object.defineProperty( object, 'two', { value: 2 } ); document.write(JSON.stringify(object)); </script> </body> </html>
आउटपुट
{"one":1}
यह सब "enumerable" एट्रिब्यूट के कारण होता है। किसी ऑब्जेक्ट में प्रॉपर्टी को परिभाषित करने के लिए "enumerable" एट्रिब्यूट का true होना आवश्यक है। लेकिन, जब घोषित नहीं किया जाता है तो "enumerable" का मान false होता है। इसलिए, इसे true बनाने के लिए हमें "enumerable" घोषित करना होगा और इसे true असाइन करना होगा।
निम्न उदाहरण में जब "enumerable" को इनिशियलाइज़ करके इसका मान true किया जाता है, तो सभी प्रॉपर्टीज़ प्रदर्शित होती हैं जैसा कि आउटपुट में दिखाया गया है।
उदाहरण
<html> <body> <script> var object = {one: 1}; Object.defineProperty( object, 'two', { value: 2, enumerable: true } ); document.write(JSON.stringify(object)); </script> </body> </html>
आउटपुट
{"one":1,"two":2}