JavaScript の一般的な方法は次のとおりです。
(function($) {
...code...
})(jQuery);
ラッパー関数 (グローバル名前空間の汚染を防ぐ) は理解していますが、多くのライブラリ (jQuery、Underscore など) では、グローバル スコープで短い名前 ($
および、それぞれ) を使用できるように定義しています。_
このアプローチの利点は何だろうか。jQuery
名前を短いものに変更するだけですか?上書きできないようにします$
か? 後で別のライブラリに簡単に交換できるようにしますか? これらのどれも、私にとって本当に説得力があるようには思えません。
さらに、私はこれも見ました:
(function(_) {
...code...
})(_);
ここでは何も名前が変更されていません。私も見ました:
(function(global) {
...code...
})(this); // or window, perhaps
window
直接使用するだけで何が問題になっていますか?
だからここに私が求めているものがあります:
- この習慣に名前はありますか?
- このプラクティスの利点は何ですか?
- 直接使用するのではなく、使用しているライブラリを常に渡す必要がありますか?
- グローバル スコープへの参照として渡す必要があります
this
か?window