मैं नेस्टेड चर के साथ एक जावास्क्रिप्ट ऑब्जेक्ट बनाना चाहता हूं जहां कुछ चरों में डिफ़ॉल्ट मान निर्दिष्ट नहीं होगा।मूल्य के बिना वैरिएबल घोषित करना
var myObject = {
GlobalVars: {
globalVarA: "foo",
globalVarB: "bar",
globalVarC
},
myFunction: function(){
//do something
}
}
हालांकि मैं निम्नलिखित त्रुटि मिलती है:
Expected ':'
मैं इस चर घोषणा कर सकते हैं कैसे
var globalVarA = "foo";
var globalVarB = "bar";
var globalVarC;
function myFunction(){
//do something
}
मैं करने के लिए इस परिवर्तन करना चाहते हैं:
मैं इस समय इस राशि बिना मूल्य के?
क्या यह सबसे अच्छा अभ्यास है या क्या कोई वैकल्पिक बेहतर समाधान है?
बस एक तरफ नोट पर। जब तक इसकी आवश्यकता नहीं होती है तब तक 'ग्लोबल वारसी' घोषित करने का नकारात्मक पक्ष क्या होगा? चूंकि आप 'GlobalVars.globalVarC =" जो कुछ भी सेट कर सकते हैं; " भले ही इसे घोषित नहीं किया गया हो। –
@TimBJames यह एक उत्कृष्ट सवाल है। उदाहरण के लिए, अंतर 'हैऑनप्रॉपर्टी' चेक में व्यक्त किया जा सकता है। व्यक्तिगत रूप से, यदि यह केवल उस फ़ंक्शन में उपयोग के लिए है, तो मेरे अपने कोड में मैं स्पष्ट रूप से इसे अपरिभाषित करने के बजाय 'GlobalVars.globalVarC' करता हूं। –
हाँ मैं शायद साथ भी जाऊंगा, क्योंकि यदि आप चर के अस्तित्व की जांच कर रहे हैं, तो आप 'if (GlobalVars' की जांच करेंगे।globalVarC! = अपरिभाषित) 'जो मामला किसी भी तरह से होगा। –