पुस्तक जावास्क्रिप्ट में अच्छा भागों, वस्तुओं पर CH3 के उद्घाटन के पृष्ठ पर, यह कहा गया है:क्रॉकफ़ोर्ड का क्या अर्थ है जब वह कहता है कि अपरिभाषित संपत्ति मूल्य नहीं हो सकता है?
एक वस्तु गुण है, जहां एक संपत्ति एक नाम और एक मूल्य है की एक कंटेनर है। खाली स्ट्रिंग समेत एक संपत्ति का नाम कोई स्ट्रिंग हो सकता है। अपरिभाषित को छोड़कर एक संपत्ति मूल्य कोई जावास्क्रिप्ट मान हो सकता है।
नोट: अपरिभाषित निरूपित करने के लिए वह यह है कि एक शाब्दिक है पुस्तक में प्रकाश डाला गया है।
प्रैक्टिस में, हालांकि, मैं इसे करने में सक्षम हूं।
var a = { "name": undefined };
मेरी समझ में क्या गलत है?
ब्रैकेट नोटेशन का उपयोग करते समय वह संपत्ति के नामों के बारे में गलत नहीं है, अभिव्यक्ति ToString को परिवर्तित कर दी जाएगी, संपत्ति के नाम * केवल स्ट्रिंग * हो सकते हैं, उदाहरण के लिए: var ओ = {toString: फ़ंक्शन() {वापसी 'foo'; }}, ए = {}; एक [ओ] = 'परीक्षण'; चेतावनी (एक ['foo']); 'इस उदाहरण में,' a [o] 'तक पहुंचने से 'o'' स्ट्रिंग में परिवर्तित हो जाएगा, '' foo' 'को संपत्ति के नाम के रूप में उत्पादित किया जाएगा ... – CMS
हाँ। 'ए [' [ऑब्जेक्ट डोमविंडो] '] == 43' आज़माएं। –
आह, मैं देखता हूं ... स्ट्रिंग कास्ट मेरे साथ नहीं हुआ था। उत्तर सही किया गया। –