我想我理解模块模式,但为什么有些例子将
JQuery作为参数传递给你:
Namespace.AppName = (function ($) { // Code Here })(jQuery);
如果我没有传入JQuery,我仍然可以通过在模块内部进行$()调用来使用Jquery库.那么为什么有些人这样做呢?
解决方法
这里的想法是你将jQuery作为$传递给inside函数,确保$IS 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>