0

JavaScript コードでグローバル変数を回避するために、人々が次の構文を使用するのを何度も目にしました。

(function($) {
    // here code
    // here code
})(jQuery);

質問があります: なぜ関数の引数を as として宣言する必要があり、なぜobject を引数として$渡す必要があるのでしょうか?jQuery

4

2 に答える 2

1

その必要はありません。関数の引数には、好きな名前を付けることができます。$ を jQuery ライブラリ オブジェクトのエイリアスとして使用するのが一般的であるため、これは jQuery を使用する人々の一般的/ベスト プラクティスです。

これを行うべき理由は、ライブラリ オブジェクトのエイリアスとして $ を使用する他のライブラリがあるためです。関数クロージャは $ がラッパー関数内の jQuery オブジェクトであることを保証するため、これらのライブラリとの衝突を避けるために必要です。

次に例を示します。

(function (myJqueryAlias) {
     console.log(myJqueryAlias('document') === jQuery('document'));
})(jQuery);
于 2013-09-02T11:50:33.517 に答える
0

これにより、このブロックにはまだ $ が jQuery としてあり、「jQuery("selector")」の代わりに「$("selector")」のようなものを書くことができることをアーカイブします。そして、このブロックの外では、変数 $ は本来あるべきものです (たとえば、$ も使用する別の JSLib を使用します)。

于 2013-09-02T11:50:24.183 に答える