2013-05-25 4 views
5

मैं अगर आप पूर्ण कोड देखने की जरूरत नहीं जानता, लेकिन मैं कुछ करने वाले प्लग इन ऐसा करने को देखा है:जावास्क्रिप्ट में विंडो ऑब्जेक्ट्स (window.something = something) क्या करते हैं?

window.dataValidate = dataValidate 

इस ऐड 'dataValidate' विंडो वस्तु के लिए, या यह कैसे काम करता है ?

+0

यह एक ही नाम के साथ एक वैश्विक वैरिएबल में 'डेटा वैलिडेट' की प्रतिलिपि बनाता है। – donkeydown

उत्तर

5

विंडो ऑब्जेक्ट

हाँ, यह होगा करने के लिए इस ऐड 'dataValidate' करता है।

उदाहरण के लिए, यदि आप किसी अन्य दायरे में हैं;

function foo() { 
    var bar = 4; 

    window.bar = bar; 
} 

अब आप bar वैश्विक कर दिया है, और कहीं भी से पहुंच सकते हैं। window.bar = bar के बिना, आप केवल foo() के भीतर इसे एक्सेस करने में सक्षम होंगे।

आप आमतौर पर इसे आईआईएफई के अंत में उपयोग कर रहे हैं, प्रकाशित दुनिया के बाकी हिस्सों (उदाहरण के लिए jQuery);

(function() { 
    var jQuery; 

    // Setup jQuery 

    window.jQuery = jQuery; 
}()); 

आप लोगों को इसके बजाय ऐसा कर सकते हैं;

function foo() { 
    bar = 4; // Note the lack of `var` 
} 

यह "अंतर्निहित ग्लोबल्स" के उपयोग के माध्यम से एक ही प्रभाव है; लेकिन यह ईएस 5 सख्त मोड में त्रुटि फेंक देगा, और इसे आम तौर पर एक खराब अभ्यास माना जाता है (प्रोग्रामर का अर्थ यह वैश्विक बनाने के लिए किया गया था, या क्या उन्होंने गलती से var को) छोड़ दिया था।

+2

यह केवल ईएस 5 सख्त मोड में एक त्रुटि फेंक देगा - ईएस 5 विनिर्देश के गैर-सख्त मोड में यह नहीं होगा। –

+1

@ क्वांटास 94 हेवी: हाहा, सुधार के लिए धन्यवाद ... मेरा दिमाग "ईएस 5 सख्त मोड" लिख रहा था, लेकिन लगता है कि मेरे कीबोर्ड में अन्य विचार थे;)। – Matt

+1

या आपके दिमाग का एक हिस्सा सख्त सोच रहा था और दूसरा इसे खा रहा था :-) – tgkprog

संबंधित मुद्दे