कोई नहीं, लोगों को "निजी" का उपयोग करते हैं क्योंकि वे गलत कर रहे हैं और कहने के लिए "स्थानीय"
स्थानीय चर के रूप
var foo = "local";
परिभाषित कर रहे हैं होती हैं
वैश्विक चर वैश्विक दायरे वस्तु का एक गुण हैं (जोहैब्राउज़र में)
window.foo = "global";
सच है कि आप पहले var foo
साथ चर foo बताए foo = "global";
कर सकते हैं एक "बग" है। यह ES5 सख्त मोड में तय किया गया है।
(function() { "use strict"; foo = 42; })()
देता ReferenceError: foo is not defined
नोट है कि आप उन्हें सबसे बाहरी दायरे में घोषणा करके चर वैश्विक कर सकते हैं
var foo = "global";
function bar() {
var foo = "local";
}
यह ध्यान देने योग्य है कि आप बाहरी में किसी भी कोड नहीं होना चाहिए सबसे अधिक गुंजाइश, कभी। आपको अपने सभी गुंजाइश को अज्ञात कार्यों में लपेटना चाहिए ताकि आपको "मॉड्यूल स्तर का दायरा" मिल सके। इसका मतलब है कि आपके पास प्रति फ़ाइल आधारित शीर्ष स्तरीय दायरा है। यह मॉड्यूल पैटर्न का हिस्सा है।
आप http://stackoverflow.com/questions/500431/javascript-variable-scope –