[Javascript] JQuery में वैश्विक मूल्य (जरूरी नहीं कि एक वैश्विक चर) को कैसे स्टोर करें?


Answers

मेरे लिए इस स्थिति को संभालने का सबसे अच्छा तरीका विंडो ऑब्जेक्ट में किसी ऑब्जेक्ट को परिभाषित करना है:

window.my_config =
{
    my_var1 : 1,
    my_var1 : 2,
    my_var1 : 3
};

यह आपके दायरे को साफ और साफ रखेगा। और जब भी आप window.my_config का उपयोग कर ग्लोबल एक्सेस करेंगे। window.my_config कोड को window.my_config कोई भी यह जान लेगा कि एक वैश्विक एक्सेस किया जा रहा है।

Question

वर्तमान में मैं एक विरासत वेब पेज पर काम कर रहा हूं जो जावास्क्रिप्ट, jQuery, माइक्रोसॉफ्ट क्लाइंट जावास्क्रिप्ट और अन्य पुस्तकालयों का एक टन उपयोग करता है। निचली पंक्ति - मैं पूरे पृष्ठ को स्क्रैच से फिर से लिख नहीं सकता क्योंकि व्यवसाय इसे उचित नहीं ठहरा सकता है। इसलिए, यह है जो यह है। वैसे भी, मुझे वैरिएबल के साथ वैश्विक नेमस्पेस प्रदूषित करने की आवश्यकता है (मैंने वास्तव में भी कोशिश नहीं की है)। तीन विकल्प हैं जिनके बारे में मैं सोच रहा था -

  1. सामान्य जावास्क्रिप्ट घोषणा का उपयोग करके इसे बस स्टोर / पुनर्प्राप्त करें - var x = 0;

  2. एक डॉम टैग - $("body").data("x", 0); में मान को स्टोर / पुनर्प्राप्त करने के लिए jQuery का उपयोग करें $("body").data("x", 0);

  3. एक छिपे हुए फॉर्म फ़ील्ड का उपयोग करें, और jQuery - $("whatever").data("x", 0); साथ मान को सेट / पुनर्प्राप्त करें $("whatever").data("x", 0);

क्या कोई बेहतर तरीका है? मैंने कोड के मौजूदा ढेर को देखा, और मुझे विश्वास नहीं है कि चर को फ़ंक्शन में स्कॉप्ड किया जा सकता है।




बस मेरे साथ अपना अभ्यास साझा करना, मैं आवश्यक जावास्क्रिप्ट फ़ाइल में एक समझदार उपसर्ग के साथ एक वैश्विक वस्तु / var बनाउंगा, जैसे कि यदि मैं उस पृष्ठ पर काम कर रहा हूं जहां यह ऑब्जेक्ट टेक्स्ट बॉक्स होगा तो मैं इसे नाम दूंगा:

g_TxtMyValue = 'value';    // g_ specifies it to be a global variable, it is one
                           // of the many conventions used

यदि आपके पास एक से अधिक वैश्विक चर हैं, तो आपके पास नामस्थान भी हो सकता है जैसे कि:

my_txt = {};  // For a real site I would use a prefix relative to the project
              // name instead of "my".

my_txt.testValueOne = 'Value one';
my_txt.testValueOne = 'Value two';

प्रारंभिक होने के बाद, इन चरों को वेबसाइट पर आपके लिए उपलब्ध कराया जाएगा।

आशा है कि ये आपकी मदद करेगा।




अंडरस्कोर का उपयोग करें isEmpty()

_.isEmpty('') true हो जाएगा।