2012-04-24 9 views
6

私はモジュールのパターンを理解すると思うが、いくつかの例を行う理由は、このようなパラメータとしてではJQueryを渡す:私はjQueryのに渡さない場合モジュールパターン - JQueryがパラメータとして渡されるのはなぜですか?

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

私はまだすることによってうまくjQueryライブラリを使用することができますモジュールの中で$()を呼び出します。だから、なぜ何人かはこれをするのですか?

+0

可能二重にこのコードを持っていた場合は、[関数の引数としてjQueryのドル記号($)?](http://stackoverflow.com/questions/4983150/jquery-dollar-sign-as-function-argument) –

答えて

16

ここでの考え方はjQuery$としてinside関数に渡し、$が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

anotherlibrary.jsが$をグローバルとして定義している場合、 "$"は他のライブラリです。おもう –

1

$を安全に使用するためです。ほとんどの開発者はjQueryの代わりに '$'を使うのがより快適です。

$をグローバルとして使用すると、他のJSライブラリと競合する可能性があります。

0

名前空間/スコープが$をjQueryとして使用し、$を使用するPrototypeなどの他のJSライブラリを使用していないことを確認する場合はこれがあります。

1

これは、jQueryのショートカットとして$を使用できるようにするためです。このようにカプセル化しないと、他のライブラリと衝突することがあります。

関連する問題