वैश्विक बुरा कर रहे हैं क्योंकि वे समस्याओं का तुरंत कारण नहीं है। केवल बाद में, आप उन्हें पूरी जगह पर इस्तेमाल करने के बाद, वे बहुत बदसूरत समस्याएं पैदा करेंगे - जिन्हें आप स्क्रैच से अपना कोड लिखने के बिना और हल नहीं कर सकते हैं।
उदाहरण: आप कुछ कार्यों को परिभाषित करने के लिए $body
का उपयोग करते हैं। यह ठीक काम करता है। लेकिन अंततः, आपको एक मूल्य की भी आवश्यकता है। तो आप $body.foo
का उपयोग करें। ठीक काम करता है। फिर आप $body.bar
जोड़ें। और फिर, सप्ताह बाद, आपको एक और मूल्य की आवश्यकता है ताकि आप $body.bar
जोड़ सकें।
आप कोड का परीक्षण करते हैं और ऐसा लगता है कि यह काम करता है। लेकिन वास्तव में, आपने दो बार एक ही चर "जोड़ा" है। यह कोई समस्या नहीं है क्योंकि जावास्क्रिप्ट "एक बार एक नया चर बनाने" की अवधारणा को समझ में नहीं आता है। यह सिर्फ "जानता है जब तक कि यह पहले से मौजूद नहीं है।" तो आप अपने कोड का उपयोग करते हैं और अंततः, एक फ़ंक्शन $body.bar
को किसी अन्य फ़ंक्शन को तोड़ देगा। समस्या को खोजने के लिए भी आपको बहुत समय लगेगा।
यही कारण है कि यह सुनिश्चित करना बेहतर होगा कि चर केवल आवश्यक आधार पर ही देखा जा सके। इस तरह, एक समारोह दूसरे को तोड़ नहीं सकता है। आपका कोड बढ़ने के साथ यह अधिक महत्वपूर्ण हो जाता है।
स्रोत
2010-11-22 14:26:39
या कुछ 'अन्य' वैश्विक चर $ शरीर – Mchl
हाँ कहा जाता है के ऊपर लिख, लेकिन इस उदाहरण में यह वैश्विक मूल्य की जगह लेंगे, इस तरह से यह केवल समारोह – mpapis
एक समारोह शाब्दिक स्थानीय चर कि में घोषित किया गया का उपयोग कर के दायरे में यह खाल फ़ंक्शन को परिभाषित करने के समान स्कोप को [क्लोजर] (http://jibbering.com/faq/notes/closures/) कहा जाता है, और इसका उपयोग jQuery में बड़े प्रभाव के लिए बड़े पैमाने पर किया जाना चाहिए। – Phrogz