2012-04-24 7 views
6

मुझे लगता है कि मैं मॉड्यूल पैटर्न समझते हैं, लेकिन क्यों कुछ उदाहरण कर में JQuery पारित इस तरह एक पैरामीटर के रूप:मॉड्यूल पैटर्न - JQuery पैरामीटर के रूप में क्यों पास किया गया है?

Namespace.AppName = (function ($) { 
    // Code Here 
})(jQuery); 

मैं JQuery में उत्तीर्ण नहीं होते हैं मैं अभी भी सिर्फ बनाकर ठीक jQuery पुस्तकालय का उपयोग कर सकते मॉड्यूल के अंदर $() कॉल। तो कुछ लोग ऐसा क्यों करते हैं?

+0

के संभावित दो प्रतियों में इस कोड था [jQuery डॉलर चिह्न ($) समारोह तर्क के रूप में?] (Http://stackoverflow.com/questions/4983150/jquery-dollar-sign-as-function-argument) –

उत्तर

16

यहां विचार यह है कि आप jQuery$ को अंदरूनी फ़ंक्शन में पास करते हैं, यह सुनिश्चित कर लें कि $ आईएस jQuery है। यह आमतौर पर $ का उपयोग करने वाले कोड की सुरक्षा के लिए उपयोग किया जाता है, विशेष रूप से जब अन्य पुस्तकालयों के साथ jQuery का उपयोग करते हैं जो $ mootools की तरह उपयोग करते हैं।


उदाहरण के लिए, आप <head>

<!--load jQuery--> 
<script src="jquery.js"></script> 

<script> 
    //"$" is jQuery 
    //"jQuery" is jQuery 
</script> 

<!--load another library--> 
<script src="anotherlibrary.js"></script> 

<script> 
    //"$" is the other library 
    //"jQuery" is jQuery 

    //out here, jQuery code that uses "$" breaks 

    (function($){ 
     //"$" is jQuery 
     //"jQuery" is jQuery (from the outside scope) 

     //in here, jquery code that uses "$" is safe 

    }(jQuery)); 

</script> 
+0

समझ में आता है! धन्यवाद! – reach4thelasers

+0

"$" दूसरी लाइब्रेरी है जब allibrary.js ने वैश्विक रूप से $ को परिभाषित किया है। मुझे लगता है –

1

$ 'सुरक्षित रूप से' उपयोग करने के लिए। अधिकांश डेवलपर jQuery के बजाय '$' के साथ अधिक आरामदायक होते हैं।

वैश्विक रूप से $ $ का उपयोग करते समय, यह अन्य जेएस पुस्तकालयों के साथ संघर्ष कर सकता है।

0

यह सुनिश्चित करने के लिए कि आपका नेमस्पेस/स्कोप jQuery के रूप में $ का उपयोग करता है और अन्य जेएस पुस्तकालयों जैसे प्रोटोटाइप, जो $ का भी उपयोग करता है।

1

ऐसा इसलिए है कि आप jQuery के लिए $ शॉर्टकट का उपयोग कर सकते हैं। यदि आप इसे इस तरह से समाहित नहीं करते हैं तो यह कभी-कभी अन्य पुस्तकालयों के साथ टकरा सकता है।

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