मैं जावास्क्रिप्ट के लिए नया हूँ और मैं स्थानीय और वैश्विक चर स्कोप के बारे में कुछ प्रथाओं कर रहा था, के बाद मेरे कोड (fiddle) है अपरिभाषित के रूप में myname
दिखा रहा है। इसलिए मेरा भ्रम है कि मैं myname
के वैश्विक उदाहरण तक पहुंचने में सक्षम नहीं हूं और यदि मैं फ़ंक्शन के भीतर myname
को परिभाषित नहीं करता हूं तो यह ठीक काम करेगा।जावास्क्रिप्ट स्थानीय और वैश्विक चर भ्रम
उत्तर
यह वैश्विक चर को प्रतिस्थापित नहीं करता है। क्या हो रहा है उसे "वेरिएबल होस्टिंग" कहा जाता है। वह है, var myname;
फ़ंक्शन के शीर्ष पर डाला जाता है। हमेशा अपने चर को प्रारंभ करने से पहले उनका का उपयोग करें - इस प्रयास करें:
var myname = "initial";
function c() {
alert(myname);
myname = "changed";
alert(myname);
}
c();
महोदय, मैं सिर्फ मूल्य बदलने की कोशिश नहीं कर रहा हूं .. आप जो कर रहे हैं वह वैश्विक चर के मूल्य को बदल रहा है .. मैं अवधारणा को समझना चाहता हूं "क्यों" यह हो रहा है ... –
यह चेतावनी की समस्या को हल करता है अपरिभाषित, लेकिन यह किसी भी स्थानीय चर को समाप्त करता है क्योंकि यह केवल वैश्विक चर 'myname' का उपयोग कर रहा है। – EmptyArsenal
यह वैश्विक चर को प्रतिस्थापित नहीं करता है। क्या हो रहा है उसे "वेरिएबल होस्टिंग" कहा जाता है। यही है, मेरा नाम var मेरा नाम; समारोह के शीर्ष पर डाला जाता है। अपने उपयोग से पहले अपने चर को हमेशा प्रारंभ करें, आप इसे http://stackoverflow.com/questions/11938961/understanding-global-local-scope-in-javascript?rq=1 –
जावास्क्रिप्ट में, चर घोषणाओं स्वचालित रूप से समारोह की चोटी पर ले जाया जाता है। तो, दुभाषिया इसे और अधिक दिखता है:
var myname = "initial"
function c(){
var myname;
// alerts undefined
alert(myname);
myname = "changed";
// alerts changed
alert(myname);
}
c();
इसे 'hoisting' कहा जाता है।
उछाल के कारण और तथ्य यह है कि किसी भी चर के लिए दायरा यह घोषित किया गया है कि यह इस भ्रम से बचने के लिए एक समारोह के शीर्ष पर सभी चर सूचीबद्ध करने का मानक अभ्यास है।
देख सकते हैं जो मुझे समझा है, इसलिए अब स्थानीय चर के रूप में एक ही नाम के साथ एक वैश्विक चर का उपयोग करने के लिए रास्ता .. ?? –
आपको 'window.myname' करके इसे एक्सेस करने में सक्षम होना चाहिए। यहां देखें: http://stackoverflow.com/questions/15826751/access-overridden-global-variable-inside-a- कार्यक्षमता लेकिन वैश्विक चर आमतौर पर एक अच्छा अभ्यास नहीं माना जाता है, और ज्यादातर मामलों में यह परिभाषित करना बेहतर होगा एक वैश्विक वस्तु और इसके माध्यम से इसका उपयोग करें। यानी 'var me = {myname: "प्रारंभिक"}' फिर फ़ंक्शन में 'me.myname' को कॉल करें। – EmptyArsenal
यह कहना सही नहीं है कि वैरिएबल घोषणा शीर्ष पर ले जाया गया है। उदाहरण के लिए यदि लाइन 10 पर यह var myname = "प्रारंभिक" लिखा गया है, तो परिणाम हम देखते हैं कि लाइन 1 पर var myname = "प्रारंभिक" जैसा नहीं है, लेकिन असल में हम व्यवहार देखते हैं जैसे var myname लाइन 1 पर और लाइन पर है 10 यह मूल्य असाइन किया गया है यानी myname = "प्रारंभिक" –
- 1. वैश्विक और स्थानीय और निजी कार्यों (जावास्क्रिप्ट)
- 2. Jinja2: स्थानीय/वैश्विक चर
- 3. जावास्क्रिप्ट फ़ंक्शन के अंदर स्थानीय और वैश्विक चर
- 4. अजगर वर्ग और वैश्विक स्थानीय चर
- 5. समझौता वैश्विक और जावास्क्रिप्ट
- 6. वैश्विक पहुंच बनाम स्थानीय चर
- 7. Jquery .ajax() स्थानीय चर वैश्विक
- 8. जावास्क्रिप्ट स्थानीय चर घोषित
- 9. जावास्क्रिप्ट वैश्विक चर
- 10. जावास्क्रिप्ट चर वैश्विक
- 11. सभी वैश्विक चर/स्थानीय चर मुद्रण?
- 12. जावास्क्रिप्ट और ईएस 6, "वैश्विक" चर
- 13. Greasemonkey और वैश्विक चर
- 14. जावास्क्रिप्ट वैश्विक चर गुंजाइश मुद्दा
- 15. जावास्क्रिप्ट बंद बनाम वैश्विक चर
- 16. जावास्क्रिप्ट - सभी वैश्विक चर डंपिंग
- 17. वैश्विक चर वैश्विक क्षेत्र
- 18. वैश्विक चर के साथ अनबाउंड स्थानीय त्रुटि
- 19. jquery-plugin में वैश्विक या स्थानीय चर
- 20. वहाँ एक वैश्विक चर और वैश्विक वस्तु
- 21. संदर्भ स्थानीय - वे स्थानीय संदर्भ चर वैश्विक कैसे बनाते हैं?
- 22. वैश्विक चर और अजगर
- 23. वैश्विक चर और मैपलियर
- 24. वैश्विक चर और एमपीआई
- 25. एकाधिक फ़ाइलों में जावास्क्रिप्ट में वैश्विक चर
- 26. जावास्क्रिप्ट में वैश्विक चर घोषित कैसे करें?
- 27. पायथन कार्य वैश्विक चर?
- 28. जावास्क्रिप्ट वैश्विक चर और स्व-चालान अज्ञात कार्य
- 29. कैसे वैश्विक चर का उपयोग करने की है जब वहाँ एक स्थानीय और वैश्विक संघर्ष है
- 30. समारोह स्कोप और वैश्विक चर
यदि आप ** चेतावनी (window.myname) करते हैं; ** तो आपको मूल्य –
@dholakiyaankit मिलेगा I window.myname का उपयोग करने का प्रयास किया है अभी भी यह अपरिभाषित है ... –
@भारतनी विंडो.मेनाम मेरे काम करता है ब्राउज़र। – EmptyArsenal