Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Javascript

जावास्क्रिप्ट में वैश्विक नामस्थान प्रदूषण क्या है?

<घंटा/>

वैश्विक नाम स्थान प्रदूषण

प्रदूषण वैश्विक नाम स्थान नाम टकराव का कारण बनता है . यह नाम टकराव बड़ी परियोजनाओं में बहुत आम है जहां हम कई जावास्क्रिप्ट . का उपयोग कर सकते हैं पुस्तकालय। आइए विस्तार से चर्चा करें कि नाम की टक्कर . क्या है है।

आइए एक परिदृश्य लेते हैं जिसमें A1 और A2 नाम की 2 टीमें एक प्रोजेक्ट पर काम कर रही हैं। उन दोनों ने अपनी-अपनी जावास्क्रिप्ट फ़ाइलें तैयार कीं जो TeamA1.js . है और TeamA2.js जैसा कि नीचे दिखाया गया है।

TeamA1.js

टीमA1 एक छात्र फ़ंक्शन बनाया है और इसमें 2 पैरामीटर fname और lname (प्रथम नाम और अंतिम नाम) हैं।

<पूर्व>कार्य छात्र(fname, lname){ this.fname =fname; यह। नाम =नाम; this.getFullName =function (){ इसे लौटाएं। fname + "" + this.lname}}

TeamA2.js

टीमA2 एक ही फ़ंक्शन (छात्र) बनाया है और इसमें 3 पैरामीटर हैं fname, mname, lname।

फ़ंक्शन छात्र (fname, mname, lname){ this.fname =fname; this.mname =mname; यह। नाम =नाम; this.getFullName =function (){ यह लौटाएं। fname + "" + this.mname + "" + this.lname; }} 

अब उपरोक्त जेएस फाइलों को संचालित करने के लिए एक एचटीएमएल फाइल बनाएं। js फ़ाइलों को टैग

. में रखें

एचटीएमएल फ़ाइल

<स्क्रिप्ट प्रकार ="जावास्क्रिप्ट" src ="TeamA1.js"><स्क्रिप्ट प्रकार ="जावास्क्रिप्ट" src ="TeamA2.js"> 

यदि हम कोड चलाते हैं तो निम्न आउटपुट प्रदर्शित होगा।

आउटपुट

राजेंद्र प्रसाद अपरिभाषित

स्पष्टीकरण

हमारे यहां दो छात्र कार्य हैं एक 2 पैरामीटर के साथ है और दूसरा 3 पैरामीटर के साथ है। हमारा उद्देश्य 2 मापदंडों के साथ छात्र फ़ंक्शन का उपयोग करना है, इसलिए html फ़ाइल . में केवल दो पैरामीटर ("राजेंद्र", "प्रसाद") पास हुए हैं। लेकिन हमें जो आउटपुट मिला वह "राजेंद्र प्रसाद अपरिभाषित" है, जिसका अर्थ है कि कोड ने 2 मापदंडों के साथ कार्य करने के बजाय 3 मापदंडों के साथ एक फ़ंक्शन लिया था।

इसके पीछे का कारण यह है कि जावास्क्रिप्ट फ़ंक्शन ओवरलोडिंग को प्रोत्साहित नहीं करेगा . यह बस ओवरराइड करता है एक ही नाम वाले किसी अन्य फ़ंक्शन वाला फ़ंक्शन (यहां यह छात्र है)। हमारे उदाहरण में 3 पैरामीटर (TeamA2.js) के साथ फ़ंक्शन को 2 पैरामीटर (TeamA1.js), TeamA2 के साथ फ़ंक्शन के बाद रखा गया है फ़ंक्शन ने TeamA1 को ओवरराइड कर दिया फ़ंक्शन, अपरिभाषित . प्रदर्शित कर रहा है आउटपुट में। यदि दो जेएस फाइलों के स्थान अपने संबंधित स्थानों को उलट देते हैं तो आउटपुट "राजेंद्र प्रसाद" होगा।

यहां हम कह सकते हैं कि नाम की टक्कर हुए हैं। दोनों टीमों ने एक ही नाम से एक फंक्शन बनाया है जो कि स्टूडेंट है। इसलिए यह बहुत महत्वपूर्ण है कि सब कुछ ग्लोबल नेमस्पेस में न जोड़ें। यदि कोई अन्य व्यक्ति समान चर या फ़ंक्शन नामों का उपयोग करता है, तो इससे नाम टकराव . हो सकता है ।


  1. जावास्क्रिप्ट में फंक्शन एक्सप्रेशन क्या हैं?

    फंक्शन एक्सप्रेशन हमें फंक्शन को एक वेरिएबल में स्टोर करने की अनुमति देता है जिसे बाद में वेरिएबल नाम का उपयोग करके लागू किया जा सकता है। उन्हें भी सामान्य फ़ंक्शन घोषणा की तरह फहराया नहीं जाता है, इसलिए उन्हें परिभाषित होने से पहले नहीं बुलाया जा सकता है। जावास्क्रिप्ट में फंक्शन एक्सप्रेशन को लाग

  1. जावास्क्रिप्ट में क्लोजर क्या हैं?

    जावास्क्रिप्ट में क्लोजर हमें बाहरी फ़ंक्शन के निष्पादित होने और वापस आने के बाद भी आंतरिक फ़ंक्शन से बाहरी फ़ंक्शन स्कोप तक पहुंचने की अनुमति देता है। इसका मतलब है कि आंतरिक फ़ंक्शन के पास हमेशा बाहरी फ़ंक्शन चर तक पहुंच होगी। जावास्क्रिप्ट में क्लोजर के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE

  1. पायथन में नेमस्पेस क्या है?

    नेमस्पेस दायरे को लागू करने का एक तरीका है। पायथन में, प्रत्येक पैकेज, मॉड्यूल, क्लास, फंक्शन और मेथड फंक्शन में एक नेमस्पेस होता है जिसमें वेरिएबल नाम हल किए जाते हैं। जब किसी फ़ंक्शन, मॉड्यूल या पैकेज का मूल्यांकन किया जाता है (अर्थात, निष्पादन शुरू होता है), एक नाम स्थान बनाया जाता है। इसे मूल्या