वैश्विक नाम स्थान प्रदूषण
प्रदूषण वैश्विक नाम स्थान नाम टकराव का कारण बनता है . यह नाम टकराव बड़ी परियोजनाओं में बहुत आम है जहां हम कई जावास्क्रिप्ट . का उपयोग कर सकते हैं पुस्तकालय। आइए विस्तार से चर्चा करें कि नाम की टक्कर . क्या है है।
आइए एक परिदृश्य लेते हैं जिसमें 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 को ओवरराइड कर दिया फ़ंक्शन, अपरिभाषित . प्रदर्शित कर रहा है आउटपुट में। यदि दो जेएस फाइलों के स्थान अपने संबंधित स्थानों को उलट देते हैं तो आउटपुट "राजेंद्र प्रसाद" होगा।
यहां हम कह सकते हैं कि नाम की टक्कर हुए हैं। दोनों टीमों ने एक ही नाम से एक फंक्शन बनाया है जो कि स्टूडेंट है। इसलिए यह बहुत महत्वपूर्ण है कि सब कुछ ग्लोबल नेमस्पेस में न जोड़ें। यदि कोई अन्य व्यक्ति समान चर या फ़ंक्शन नामों का उपयोग करता है, तो इससे नाम टकराव . हो सकता है ।