आजकल, मैं कई कार्यों के साथ एक .js फ़ाइल बनाता हूं और फिर मैं इसे अपने HTML पृष्ठों से लिंक करता हूं। यह काम कर रहा है लेकिन मैं जानना चाहता हूं कि मेरे पृष्ठों में जेएस डालने और दायरे से टकराव से बचने के लिए सबसे अच्छा तरीका क्या है (धन्यवाद।जावास्क्रिप्ट: वैश्विक दायरा
उत्तर
शायद यह सबसे अच्छा तरीका नहीं है, लेकिन बहुत से PHP सिस्टम (मैं आपको देख रहा हूं, ड्रूपल) अपनी विशेष प्लगइन का नाम लेता हूं और इसे अपने सभी फ़ंक्शन नामों में प्रस्तुत करता हूं। आप कुछ ऐसा कर सकते हैं, जो आपके फ़ंक्शन नामों पर आपकी क्षमता का नाम जोड़ सकता है - "mything_do_action()"
वैकल्पिक रूप से, आप अधिक "ओओ" दृष्टिकोण ले सकते हैं, और एक ऐसी वस्तु बना सकते हैं जो आपकी क्षमता को समाहित करे, और सभी को जोड़ें आईटी पर सदस्य कार्यों के रूप में आपके कार्य। इस तरह, चिंता करने के लिए वैश्विक दायरे में केवल एक चीज है।
मैं जावास्क्रिप्ट के साथ ओओ सीखने की कोशिश कर रहा हूं लेकिन यह मेरे लिए मुश्किल है। जावास्क्रिप्ट में एक साधारण "कक्षा" या कुछ और बनाने के लिए बहुत सारे वाक्यविन्यास हैं :) धन्यवाद। – thomas
एक नया दायरा बनाने और वहां अपना कोड निष्पादित करने का सबसे अच्छा तरीका है।
(function(){
//code here
})();
यह सबसे अच्छा उपयोग किया जाता है जब वैश्विक दायरे को कम से कम एक्सेस किया जाता है।
असल में, यह एक अज्ञात फ़ंक्शन को परिभाषित करता है, इसे एक नया दायरा देता है, और इसे कॉल करता है।
var NameSpace = {
Person : function(name, age) {
}
};
var jim= new NameSpace.Person("Jim", 30);
"()" का क्या अर्थ है? इसके बारे में कोई लिंक? और window.onload के बारे में क्या? मुझे इसे कहां रखना चाहिए? जावास्क्रिप्ट में कुछ बूटस्ट्रैप जैसी अभ्यास है? धन्यवाद। – thomas
व्यक्तिगत रूप से मुझे लगता है कि अगर आप इसे एक पंक्ति पर देखते हैं तो एक अज्ञात फ़ंक्शन को समझना आसान होता है। दुर्भाग्य से मुझे टिप्पणियों में कोई लाइन-ब्रेक नहीं मिला है, लेकिन यदि आप इस तरह से सोचते हैं: यह पहले से मौजूद फ़ंक्शन को निष्पादित करने जैसा है, लेकिन फ़ंक्शन के नाम का उपयोग करने के बजाय, आप फ़ंक्शन परिभाषा को ब्रैकेट में डालते हैं। – lucideer
आप वास्तव में उदाहरण के लिए ऐसा कर सकते हैं: (फ़ंक्शन (पैरा) {/ * * /}) ('param value'); – lucideer
एक साधारण विचार एक उद्देश्य यह है कि अपने नाम स्थान का प्रतिनिधित्व करता है का उपयोग करने के लिए है आपके द्वारा कहीं और लिखा गया जावास्क्रिप्ट फ़ंक्शंस (अन्य स्क्रिप्ट में), आप एक वैश्विक ऑब्जेक्ट बनाने से बेहतर हैं जिस पर उन्हें एक्सेस किया जा सकता है। या तो की तरह:
var mySingleGlobalObject={};
mySingleGlobalObject.someVariable='a string value';
mySingleGlobalObject.someMethod=function(par1, par2){ /* */ };
या वैकल्पिक, छोटे वाक्य रचना (जो एक ही बात करता है):
var mySingleGlobalObject={
someVariable:'a string value',
someMethod:function(par1, par2){ /* */ }
};
यह तो जैसे अन्य लिपियों से बाद में पहुँचा जा सकता है:
mySingleGlobalObject.someMethod('jack', 'jill');
आप उनकी तरह एक गुमनाम समारोह में लपेट कर सकते हैं::
(function(){ /* */ })();
हालांकि, अगर आप फिर से उपयोग करने की आवश्यकता है
मुझे लगता है कि हमेशा अपने कोड को (फ़ंक्शन() {/ * * /})() के साथ लपेटना सुरक्षित है; बस अगर आप एक स्क्रिप्ट शामिल करते हैं कि इसे बुरी तरह समाप्त कर दिया गया है। फिर, मुझे लगता है कि आप अन्य स्क्रिप्ट के साथ साझा करने के लिए, उदाहरण के लिए "दस्तावेज़" में अपना mySingleGlobalObject जोड़ सकते हैं। – endavid
- 1. रूबी वैश्विक दायरा
- 2. PHP बंद और अंतर्निहित वैश्विक परिवर्तनीय दायरा
- 3. समझौता वैश्विक और जावास्क्रिप्ट
- 4. जावास्क्रिप्ट वैश्विक ऑब्जेक्ट्स
- 5. जावास्क्रिप्ट चर वैश्विक
- 6. वैश्विक मेरी जावास्क्रिप्ट में
- 7. जावास्क्रिप्ट वैश्विक चर
- 8. पाश के लिए जावास्क्रिप्ट चरणीय दायरा
- 9. वैश्विक चर वैश्विक क्षेत्र
- 10. जावास्क्रिप्ट: विभिन्न जावास्क्रिप्ट फ़ाइलों में एक चरणीय का दायरा
- 11. वीबीस्क्रिप्ट कार्यों में परिवर्तनीय दायरा
- 12. जावास्क्रिप्ट बंद बनाम वैश्विक चर
- 13. जावास्क्रिप्ट वैश्विक चर गुंजाइश मुद्दा
- 14. जावास्क्रिप्ट - सभी वैश्विक चर डंपिंग
- 15. जावास्क्रिप्ट वैश्विक दायरे पर eval?
- 16. आरआईड मानों का दायरा
- 17. सिनात्रा चर का दायरा
- 18. जावास्क्रिप्ट/ईसीएमएस्क्रिप्ट में किसी फ़ंक्शन का दायरा क्या है?
- 19. जावास्क्रिप्ट अज्ञात फ़ंक्शन का "यह" (दायरा) कैसे प्राप्त करें?
- 20. जावास्क्रिप्ट को वैश्विक प्रयास/पकड़ जोड़ें
- 21. वैश्विक जावास्क्रिप्ट अपवाद हैंडलर (क्रोम में)
- 22. वैश्विक और स्थानीय और निजी कार्यों (जावास्क्रिप्ट)
- 23. क्या JSONRequest एक वैश्विक जावास्क्रिप्ट ऑब्जेक्ट है?
- 24. जावास्क्रिप्ट में वैश्विक चर घोषित कैसे करें?
- 25. एकाधिक फ़ाइलों में जावास्क्रिप्ट में वैश्विक चर
- 26. जावास्क्रिप्ट में निहित वैश्विक बचना (JSlint)
- 27. वैश्विक जावास्क्रिप्ट फ़ाइलें और नामकरण सम्मेलन (अविभाज्य जावास्क्रिप्ट)?
- 28. कक्षाओं के बाहर परिवर्तनीय दायरा
- 29. ग्लोबल स्कोप बनाम वैश्विक नामस्थान
- 30. वैश्विक वैरिएबल
http: //javascript.crockford.com/code.html – Anders