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

जावास्क्रिप्ट में नेमस्पेस प्रदूषण से कैसे बचें?

<घंटा/>

नाम स्थान प्रदूषण से बचना

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

var Tutorix = Tutorix || {};

कोड की उपरोक्त पंक्ति कहती है कि यदि ट्यूटोरिक्स ऑब्जेक्ट पहले से मौजूद है तो उसका उपयोग करें, अन्यथा एक नई वस्तु बनाएं।

हम नेस्टेड नेमस्पेस भी बना सकते हैं जो किसी अन्य नेमस्पेस के अंदर एक नेमस्पेस है।

var Tutorix = Tutorix || {};
Tutorix.TeamA1 = Tutorix.TeamA1 || {};

कोड की उपरोक्त पंक्तियों में दूसरी पंक्ति बताती है कि यदि TeamA1 पहले से मौजूद है उस वस्तु का उपयोग करें, अन्यथा एक खाली TeamA1 . बनाएं वस्तु।

निम्नलिखित उदाहरण में भले ही हम HTML फ़ाइल में केवल 2 पैरामीटर पास कर रहे हैं, लेकिन हमें आउटपुट में 3 पैरामीटर मिल रहे हैं। यह नेमस्पेस टकराव . के कारण है जो Team1 और Team2 के बीच होता है (दोनों एक ही फ़ंक्शन नाम साझा कर रहे हैं "विद्यार्थी ")।

TeamA1.js

<html>
<body>
<script>
   function student(Fname,Lname){
      this.Fname = Fname;
      this.Lname = Lname;
      This.getFullName = function(){
         return this.Fname + " " + this.Lname;
      }
   }
</script>
</body>
</html>

TeamA2.js

<html>
<body>
<script>
   function student(Fname, Mname, Lname){
   this.Fname = Fname;
   this.Mname = Mname;
   this.Lname = Lname;
   This.getFullName = function(){
      return this.Fname + " " + this.Mname + " " + this.Lname;
   }
   }
</script>
</body>
</html>

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

<html>
<head>
<script type = "javascript" src = "TeamA1.js"></script>
<script type = "javascript" src = "TeamA2.js"></script>
</head>
<body>
<div id = "resultDiv"></div>
<script>
   document.getElementById("resultDiv").innerHTML =
   new student("Rajendra", "prasad").getFullName();
</script>
</body>
</html>

आउटपुट

Rajendra prasad undefined.


नामस्थान टकराव के बाद से TeamA1.js . के बीच होता है और TeamA2.js , भले ही हमने केवल 2 पैरामीटर "राजेंद्र" और "प्रसाद" भेजे ताकि TeamA1.js तक पहुंचने के लिए, हमें आउटपुट में 3 पैरामीटर "राजेंद्र प्रसाद अपरिभाषित" मिले। ऐसा इसलिए है क्योंकि TeamA2.js जिसमें 3 पैरामीटर हैं, ने TeamA1.js . को ओवरराइड कर दिया है ।

तो इस प्रकार के नाम टकराव . से बचने के लिए हमें वस्तुओं का उपयोग करके नाम स्थान बनाना है।

TeamA1.js

निम्नलिखित कोड नाम स्थान में TeamA1 ट्यूटोरिक्स . नामक किसी अन्य वस्तु का उपयोग करके बनाया गया है ।

<html>
<body>
<script>
   var Tutorix = Tutorix || {};
   Tutorix.TeamA1 = Tutorix.TeamA1 || {};
   Tutorix.TeamA1.student = function (Fname, Lname){
      this.Fname = Fname;
      this.Lname = Lname;
      this.getFullName = function(){
         return this.Fname + " " + this.Lname;
      }
      return this;
   }
</script>
</body>
</html>

TeamA2.js

निम्नलिखित कोड नाम स्थान में TeamA2 ट्यूटोरिक्स . नामक किसी अन्य वस्तु का उपयोग करके बनाया गया है ।

<html>
<body>
<script>
   var Tutorix = Tutorix || {};
   Tutorix.TeamA2 = Tutorix.TeamA2 || {};
   Tutorix.TeamA2.student = function (Fname, Mname, Lname){
      this.Fname = Fname;
      this.Mname = Mname;
      this.Lname = Lname;
      this.getFullName = function(){
         return this.Fname + " " + this.Mname + " " + this.Lname;
      }
      return this;
   }
</script>
</body>
</html>

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

HTML फ़ाइल में दोनों js फ़ाइलें (TeamA1.js और TeamA2.js) शामिल करें।

<html>
<head>
<script type = "javascript" src = "TeamA1.js"></script>
<script type = "javascript" src = "TeamA2.js"></script>
</head>
<body>
<script>
   document.write(window.Tutorix.TeamA1.student("Rajendra", "prasad").getFullName());
   document.write(window.Tutorix.TeamA2.student("Babu","Rajendra","prasad").getFullName());
</script>
</body>
</html>

आउटपुट

Rajendra prasad
Babu Rajendra prasad

उपरोक्त उदाहरण में, हमने नेस्टेड नेमस्पेस . का उपयोग किया है वह ट्यूटोरिक्स . में है नाम स्थान हमने नेस्ट किया है TeamA1 और TeamA2 नाम टकराव से बचने के लिए . चूंकि नेमस्पेस टकराव से बचा है, इसलिए हमें प्रत्येक व्यक्तिगत स्क्रिप्ट के लिए आउटपुट मिला है।


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

    कॉल (), लागू () और बाइंड () जावास्क्रिप्ट में विधियों को उधार लेने के लिए उपयोग किया जाता है। जावास्क्रिप्ट में उधार लेने के तरीकों के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="view

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

    जावास्क्रिप्ट में सरणियों को कम करने के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document

  1. जावास्क्रिप्ट के साथ तालिका में नल मान डालने से कैसे बचें?

    तालिका में डाले गए शून्य मानों से छुटकारा पाने के लिए, आपको मान दर्ज करते समय स्थिति की जांच करनी होगी। NULL की जाँच करने की शर्त इस प्रकार होनी चाहिए - while( !( yourVariableName1==null || yourVariableName2==null || yourVariableName3==null…...N){    // yourStatement1