मैं जावास्क्रिप्ट के साथ एक अजीब दायरे मुद्दे में चला रहा हूँ (JSFiddle देखें):जावास्क्रिप्ट वैश्विक चर गुंजाइश मुद्दा
var someGlobal = 3;
function someF() {
// undefined issue
alert(someGlobal);
var someGlobal = 5;
// Displays 5
alert(someGlobal);
}
function someF2() {
// Displays 3, why?
alert(someGlobal);
}
someF();
someF2();
क्यों जावास्क्रिप्ट someF2()
में एक अपरिभाषित मुद्दा फेंकता नहीं करता है? someF2()
कैसे someGlobal
, और someF()
तक पहुंच सकते हैं? मैं कैसे सुनिश्चित कर सकता हूं कि किसी फ़ंक्शन में वैश्विक चर पहुंच योग्य है?
टिप्पणी:
दोनों मामलों में, कार्यों alert(someglobal)
फोन करके शुरू करते हैं, यही कारण है कि एक समारोह एक अपरिभाषित मुद्दे और अन्य फेंक नहीं है?
+1 लेकिन अधिक वर्णित करें कि ग्लोबल वैरिएबल स्थानीय चर द्वारा फ़ंक्शन में ओवरराइट हो जाता है: D –
यह ओवरराइट नहीं होता है, यह मुखौटा हो जाता है। – Quentin
अच्छी तरह से आप मुझे दोनों के बारे में थोड़ा सा स्पष्टीकरण दे सकते हैं! मैंने इस पर शोध नहीं किया है! केवल उस समारोह के लिए इसे ओवरराइट किया जाता है या नहीं? –