मैं जावास्क्रिप्ट में वैश्विक चर कैसे घोषित कर सकता हूं?जावास्क्रिप्ट में वैश्विक चर घोषित कैसे करें?
उत्तर
आप उत्पादन कोड में वैश्विक चर (जो बचा जाना चाहिए) उत्पन्न करने के लिए है, तो हमेशा उन्हें स्पष्ट घोषित:
window.globalVar = "This is global!";
हालांकि यह सिर्फ var
को छोड़ते हुए से एक वैश्विक चर परिभाषित करना संभव है (मानते हैं कि एक ही नाम का कोई स्थानीय चर नहीं है), ऐसा करने से अंतर्निहित वैश्विक उत्पन्न होता है, जो करना एक बुरी चीज है और सख्त मोड में कोई त्रुटि उत्पन्न करेगी।
यदि यह एकमात्र ऐसा एप्लिकेशन है जहां आप इस चर का उपयोग करने जा रहे हैं, तो फ़ेलिक्स का दृष्टिकोण उत्कृष्ट है। हालांकि, अगर आप एक jQuery प्लगइन लिख रहे हैं, तो "ऑब्जेक्टिंग" पर विचार करें (बाद में उद्धरणों पर विवरण ...) jQuery ऑब्जेक्ट के तहत आवश्यक चर और फ़ंक्शन। उदाहरण के लिए, मैं वर्तमान में एक jQuery पॉपअप मेनू पर काम कर रहा हूं जिसे मैंने मिनीमेनू कहा है। इस प्रकार, मैंने jQuery के तहत "नेमस्पेस" miniMenu
परिभाषित किया है, और मैं वहां सबकुछ रखता हूं।
जब मैं जावास्क्रिप्ट नेमस्पेस के बारे में बात करता हूं तो उद्धरणों का उपयोग करने का कारण यह है कि वे सामान्य अर्थ में वास्तव में नामस्थान नहीं हैं। इसके बजाए, मैं सिर्फ जावास्क्रिप्ट ऑब्जेक्ट का उपयोग करता हूं और इस ऑब्जेक्ट के गुणों के रूप में अपने सभी कार्यों और चर को स्थान देता हूं।
इसके अलावा, सुविधा के लिए, मैं आमतौर पर प्लगइन नामस्थान को i
नामस्थान के साथ उप-स्थान देता हूं जो केवल प्लगइन के भीतर आंतरिक रूप से उपयोग किया जाना चाहिए, ताकि प्लगइन के उपयोगकर्ताओं से इसे छिपाना पड़े।
यह है कि यह कैसे काम करता है:
// An object to define utility functions and global variables on:
$.miniMenu = new Object();
// An object to define internal stuff for the plugin:
$.miniMenu.i = new Object();
अब मैं सिर्फ $.miniMenu.i.globalVar = 3
या $.miniMenu.i.parseSomeStuff = function(...) {...}
कर सकते हैं जब भी मैं कुछ विश्व स्तर पर बचाने की जरूरत है, और मैं अभी भी यह वैश्विक नामस्थान से बाहर रखने के।
उस टॉमस के लिए धन्यवाद, साइट पर मैंने ऊपर वर्णित फ़ेलिक्स दृष्टिकोण ठीक काम किया है, लेकिन मेरे पास एक और साइट है जो मैं काम कर रहा हूं जो कई प्लगइन का उपयोग करती है और यदि मैं इसे काम पर ला सकता हूं तो आपका दृष्टिकोण आदर्श होगा। आपकी मदद के लिए चीयर्स। – Dancer
यह पूरी तरह से अच्छी तरह से काम करता है! बस सुनिश्चित करें कि @ टॉमस कहता है, अपने स्वयं के कस्टम फ़ंक्शंस या चर के लिए अपना स्वयं का वर्ग/धारक बनाएं। +1 – Pierre
धन्यवाद टॉमस! यदि कोई और आवश्यक नहीं है, तो मूल ऑब्जेक्ट हटाएं (उदा .: '$ .miniMenu' हटाएं)। ठीक है न? – KunJ
यहां वैश्विक चर का एक मूल उदाहरण है कि आपके शेष कार्य पहुंच सकते हैं। यहाँ आप के लिए एक जीवित उदाहरण है: http://jsfiddle.net/fxCE9/
var myVariable = 'Hello';
alert('value: ' + myVariable);
myFunction1();
alert('value: ' + myVariable);
myFunction2();
alert('value: ' + myVariable);
function myFunction1() {
myVariable = 'Hello 1';
}
function myFunction2() {
myVariable = 'Hello 2';
}
आप एक jQuery के भीतर यह कर रहे हैं, तो तैयार() फ़ंक्शन तो सुनिश्चित करें कि आपके चर तैयार() अपने अन्य कार्यों के साथ-साथ समारोह के अंदर है या नहीं।
वैश्विक चर कैसे jQuery में अभी तक काम करते हैं के लिए सबसे अच्छा जवाब। –
मुझे पता है कि मैं गंभीर खुदाई कर रहा हूं लेकिन यह एक स्पष्ट वैश्विक चर भी नहीं है। यह एक साझा सार्वजनिक चर के साथ एक और अधिक है जो बहुत छोटी लिपियों के बंद होने में नहीं है। वे दो पूरी तरह से अलग-अलग विधियों/उपयोग हैं और यदि आप कई अलग-अलग स्क्रिप्ट के मध्य में एक स्क्रिप्ट में एक स्पष्ट वैश्विक घोषित करते हैं तो यह आपको बड़ी परेशानी में डाल देगा। मैं केवल अपनी टीम पर एक फ्रंट स्क्रिप्ट की कल्पना कर सकता हूं जो एक स्क्रिप्ट के शीर्ष पर एक वैश्विक चर घोषित करता है जिसे 10 वें डीओएम में बुलाया जाता है। –
कार्यों
function dosomething(){
var i = 0; // can only be used inside function
}
var i = '';
function dosomething(){
i = 0; // can be used inside and outside the function
}
jQuery के साथ आप सिर्फ कोई फर्क नहीं पड़ता, जहां घोषणा है यह कर सकते हैं, के बाहर चर घोषित करें:
$my_global_var = 'my value';
और हर जगह उपलब्ध हो जाएगा। मैं जल्दी छवि दीर्घाओं, जब छवियों विभिन्न स्थानों में फैले हुए हैं बनाने के लिए इसका इस्तेमाल करते हैं, तो जैसे:
$gallery = $('img');
$current = 0;
$gallery.each(function(i,v){
// preload images
(new Image()).src = v;
});
$('div').eq(0).append('<a style="display:inline-block" class="prev">prev</a> <div id="gallery"></div> <a style="display:inline-block" class="next">next</a>');
$('.next').click(function(){
$current = ($current == $gallery.length - 1) ? 0 : $current + 1;
$('#gallery').hide().html($gallery[$current]).fadeIn();
});
$('.prev').click(function(){
$current = ($current == 0) ? $gallery.length - 1 : $current - 1;
$('#gallery').hide().html($gallery[$current]).fadeIn();
});
टिप: यह पेज ;-)
$ गैलरी नहीं है और $ सामान्य सामान्य वैश्विक चर वर्तमान हैं? वे काम करते हैं क्योंकि आप उन्हें 'var' छोड़कर वैश्विक चर के रूप में परिभाषित कर रहे हैं, लेकिन उनके सामने डॉलर का चिह्न उन्हें 'jQuery चर' नहीं बना देता है ... यह सचमुच अंडरस्कोर या किसी अन्य चिह्न को डालने जैसा है उनमें से ... यदि आप jQuery ऑब्जेक्ट ($) का उपयोग करते हैं और इसमें कोई संपत्ति जोड़ते हैं तो वे jQuery चर होंगे: $ .myGlobalVariable = 'मेरा मान' ... –
आप शायद सही हैं, लेकिन क्या ध्यान देने योग्य है कि $ myVar वाक्यविन्यास का उपयोग करके आपको 2 रोमांच मिलते हैं, 1) चर किसी भी विशेष घोषणा के बिना वैश्विक है ($ के अलावा); और 2) आप कोड के अंदर अपने वैश्विक चर को आसानी से ट्रैक कर सकते हैं। हालांकि चर्चा के लिए खुला ... – aesede
का इन कंसोल में इस पूरे कोड को चलाने क्योंकि window
वस्तु गुणों के साथ, बहुत हो जाता है बहुत अव्यवस्थित सबसे अच्छा तरीका है, closures
उपयोग करने के लिए है।
एचटीएमएल
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="init.js"></script>
<script type="text/javascript">
MYLIBRARY.init(["firstValue", 2, "thirdValue"]);
</script>
<script src="script.js"></script>
</head>
<body>
<h1>Hello !</h1>
</body>
</html>
init.js (पर this answer आधार पर)
var MYLIBRARY = MYLIBRARY || (function(){
var _args = {}; // private
return {
init : function(Args) {
_args = Args;
// some other initialising
},
helloWorld : function(i) {
return _args[i];
}
};
}());
script.js
// Here you can use the values defined in the html as if it were a global variable
var a = "Hello World " + MYLIBRARY.helloWorld(2);
alert(a);
यहां plnkr है। उम्मीद है कि यह मदद करो!
- 1. जावास्क्रिप्ट चर वैश्विक
- 2. पर्ल में वैश्विक चर घोषित करने के लिए कैसे करें?
- 3. मैं वेब पेज में वैश्विक जावास्क्रिप्ट चर कहां घोषित करूं?
- 4. जावास्क्रिप्ट स्थानीय चर घोषित
- 5. क्यूटी में वैश्विक चर, कैसे करें?
- 6. जावास्क्रिप्ट - सभी वैश्विक चर डंपिंग
- 7. जावास्क्रिप्ट वैश्विक चर
- 8. मैं एलएलवीएम में वैश्विक चर कैसे घोषित कर सकता हूं?
- 9. जावास्क्रिप्ट वैश्विक चर गुंजाइश मुद्दा
- 10. एकाधिक फ़ाइलों में जावास्क्रिप्ट में वैश्विक चर
- 11. वैश्विक चर
- 12. जावास्क्रिप्ट बंद बनाम वैश्विक चर
- 13. postgresql में स्थानीय चर घोषित कैसे करें?
- 14. डीएलएल में घोषित वैश्विक चर के साथ क्या होता है?
- 15. उद्देश्य-सी - वैश्विक चर
- 16. वैश्विक मेरी जावास्क्रिप्ट में
- 17. एक .js फ़ाइल में वैश्विक चर घोषित करने के लिए कैसे करें
- 18. जावास्क्रिप्ट में वैश्विक स्थिरांक घोषित किया जा सकता है?
- 19. रेल में वैश्विक चर
- 20. तालिका मूल्यवान फ़ंक्शन में चर घोषित करें
- 21. वैश्विक चर वैश्विक क्षेत्र
- 22. वेब वर्कर में वैश्विक चर
- 23. वैश्विक चर का उपयोग
- 24. बैश: फ़ंक्शन के अंदर वैश्विक चर घोषित करना
- 25. अजगर वैश्विक चर
- 26. Zend, Application.ini में वैश्विक चर?
- 27. रिशेर्पर, जावास्क्रिप्ट: "स्पष्ट रूप से घोषित वैश्विक चर 'एक्स' का उपयोग
- 28. वहाँ एक वैश्विक चर और वैश्विक वस्तु
- 29. वैश्विक चर
- 30. कैसे घोषित करने और NSString वैश्विक स्थिरांक
'विंडो' केवल ब्राउज़र में उपलब्ध है। क्या आप इसे सभी परिवेशों में काम करने के लिए उत्तर दे सकते हैं? देखें [जावास्क्रिप्ट में वैश्विक वस्तु कैसे प्राप्त करें?] (Http://stackoverflow.com/q/3277182/3853934) –
** कभी भी ** कैमेलकेस का उपयोग न करें, पृथ्वी बहुविविध का प्रमुख सर्कस शो है और कोई कहीं * * अंततः * होगा अपने [डार्क पागल ऑब्जेक्ट नाम यहां] मानकीकृत करें। URL में विभाजक के रूप में डैश पर चिपकाएं और कोड के भीतर विभाजक के लिए अंडरस्कोर करें ('window.class_list')। – John