के अंदर एक वैश्विक चर के मान को कैसे बदलूं I जावास्क्रिप्ट का उपयोग कर रहा हूं और मैं एक वैश्विक चर बना देता हूं। मैं इसे एक फ़ंक्शन के बाहर परिभाषित करता हूं और मैं वैश्विक चर वैल्यू को फ़ंक्शन के अंदर से बदलना चाहता हूं और इसे किसी अन्य फ़ंक्शन से उपयोग करना चाहता हूं, मैं यह कैसे कर सकता हूं?मैं फ़ंक्शन
उत्तर
बस समारोह के अंदर चर संदर्भ; कोई जादू नहीं, बस इसका नाम इस्तेमाल करें। यदि यह वैश्विक रूप से बनाया गया है, तो आप वैश्विक चर अद्यतन कर रहे होंगे।
आप var
का उपयोग करके इसे स्थानीय रूप से घोषित करके इस व्यवहार को ओवरराइड कर सकते हैं, लेकिन यदि आप var
का उपयोग नहीं करते हैं, तो फ़ंक्शन में उपयोग किए जाने वाले एक चर नाम का वैश्विक स्तर होगा यदि वह चर वैश्विक रूप से घोषित किया गया है।
यही कारण है कि इसे हमेशा var
के साथ अपने चर घोषित करने का सर्वोत्तम अभ्यास माना जाता है। क्योंकि अगर आप इसे भूल जाते हैं, तो आप दुर्घटना से ग्लोबल्स के साथ गड़बड़ करना शुरू कर सकते हैं। इसे बनाना एक आसान गलती है। लेकिन आपके मामले में, यह चारों ओर मुड़ता है और आपके प्रश्न का आसान जवाब बन जाता है।
var a = 10;
myFunction();
function myFunction(){
a = 20;
}
alert("Value of 'a' outside the function " + a); //outputs 20
इस अद्भुत सरल उदाहरण के लिए धन्यवाद। इसका तर्क मेरा सिर कर रहा था। बस 4 डी सोचने के लिए उपयोग किया जाना चाहिए। – Mikey3Strings
बस उस चर के नाम का उपयोग करें।
जावास्क्रिप्ट में, चर केवल फ़ंक्शन के लिए स्थानीय होते हैं, यदि वे फ़ंक्शन के पैरामीटर हैं या यदि आप उन्हें चर के नाम से पहले var
कीवर्ड टाइप करके स्थानीय रूप से घोषित करते हैं।
स्थानीय मान का नाम वैश्विक मूल्य के रूप में एक ही नाम है, तो window
वस्तु का उपयोग
देखें इस jsfiddle
x = 1;
y = 2;
function a(y) {
// y is local to the function, because it is a function parameter
alert(y); // 10
y = 3; // will only overwrite local y, not 'global' y
var x; // makes x a local variable
x = 4; // only overwrites local x
alert(y); // 3
alert(x); // 4
// global value could be accessed by referencing through window object
alert(window.y) // 2 global y
}
a(10);
alert(x); // 1; this is the global value
alert(y); // 2; global as well
+1 वैश्विक और स्थानीय रूप से घोषित चर के बीच टकराव का नाम देने और इसे कैसे पहुंचाया जा सकता है। – gdbj
<script>
var x = 2; //X is global and value is 2.
function myFunction()
{
x = 7; //x is local variable and value is 7.
}
myFunction();
alert(x); //x is gobal variable and the value is 7
</script>
बस फ़ंक्शन के अंदर 'var' कीवर्ड का उपयोग न करें, तो आपको 'document.getElementById (" बाहर ") से निपटने की आवश्यकता नहीं है। Value = x;' –
- 1. मैं लाइब्रेरी फ़ंक्शन
- 2. मैं एक zd फ़ंक्शन
- 3. मैं फ़ंक्शन नाम को स्ट्रिंग
- 4. जावास्क्रिप्ट - मैं फ़ंक्शन के अंदर फ़ंक्शन कैसे कॉल करूं?
- 5. मैं जावास्क्रिप्ट में फ़ंक्शन कैसे लपेटूं?
- 6. मैं रिकर्सिव अनाम फ़ंक्शन कैसे लिखूं?
- 7. मैं "अस्पष्ट" फ़ंक्शन कॉल कैसे ठीक करूं?
- 8. मैं अजगर के अंतर्निहित मदद() फ़ंक्शन
- 9. मैं बैश फ़ंक्शन कैसे हटा सकता हूं?
- 10. मैं ऑब्जेक्टिव सी फ़ंक्शन कैसे कॉल करूं?
- 11. फ़ंक्शन (नेस्टेड फ़ंक्शन?)
- 12. सदस्य फ़ंक्शन छुपाएं फ़ंक्शन
- 13. फ़ंक्शन
- 14. फ़ंक्शन
- 15. == फ़ंक्शन
- 16. फ़ंक्शन
- 17. फ़ंक्शन
- 18. फ़ंक्शन
- 19. फ़ंक्शन
- 20. फ़ंक्शन
- 21. फ़ंक्शन
- 22. फ़ंक्शन
- 23. फ़ंक्शन
- 24. फ़ंक्शन
- 25. फ़ंक्शन
- 26. फ़ंक्शन
- 27. फ़ंक्शन
- 28. फ़ंक्शन
- 29. फ़ंक्शन
- 30. फ़ंक्शन
यह मेरे लिए काम नहीं करता: देश = 'foo' $ .ajax ({ यूआरएल: '/ कुछ-endpoint', सफलता: समारोह (डेटा) { देश = data.country; } }); console.log (देश) // outputs 'foo' –
@MarkSimpson - कारण यह काम नहीं करता है क्योंकि आपके उदाहरण में, 'console.log' तुरंत चलाया जाता है, लेकिन AJAX सफलता फ़ंक्शन केवल कुछ बिंदु पर चलता है बाद में जब AJAX कॉल वास्तव में एक प्रतिक्रिया देता है। यह AJAX की असीमित प्रकृति के बारे में एक मौलिक बिंदु है: क्लोजर फ़ंक्शंस में कोड अनुक्रम में इसके चारों ओर कोड के साथ नहीं चलता है। इवेंट-संचालित कोड के बारे में सीखते समय समझना महत्वपूर्ण है। – Spudley
स्पष्टीकरण के लिए धन्यवाद, @Spudley –