javascript - जावास्क्रिप्ट में वैश्विक चर घोषित कैसे करें?




global-variables (4)

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();
});

युक्ति : इस पूरे कोड को इस पृष्ठ में कंसोल में चलाएं ;-)

मैं जावास्क्रिप्ट में वैश्विक चर कैसे घोषित कर सकता हूं?


कार्यों के बाहर परिवर्तनीय घोषित करें

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 प्लगइन लिख रहे हैं, तो "ऑब्जेक्टिंग" पर विचार करें (बाद में उद्धरणों पर विवरण ...) jQuery ऑब्जेक्ट के तहत आवश्यक चर और फ़ंक्शन। उदाहरण के लिए, मैं वर्तमान में एक jQuery पॉपअप मेनू पर काम कर रहा हूं जिसे मैंने मिनीमेनू कहा है। इस प्रकार, मैंने jQuery के तहत "नेमस्पेस" miniMenu को परिभाषित किया है, और मैं वहां सबकुछ 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(...) {...} जब भी मुझे वैश्विक स्तर पर कुछ सहेजने की ज़रूरत है, और मैं इसे अभी भी बाहर रख सकता हूं वैश्विक नामस्थान।


वैश्विक वैरिएबल का एक मूल उदाहरण यहां दिया गया है कि आपके शेष कार्य एक्सेस कर सकते हैं। यहां आपके लिए एक लाइव उदाहरण दिया गया है: 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 ready () फ़ंक्शन के भीतर कर रहे हैं तो सुनिश्चित करें कि आपका चर आपके अन्य कार्यों के साथ तैयार () फ़ंक्शन के अंदर है।





global-variables