2

jQueryには奇妙なパターンがあります。

var jQuery = (function() {

// Define a local copy of jQuery
var jQuery = function( selector, context ) {
 ...
return jQuery;

})();

これの実際的な理由は何ですか?内部のjQuery関数を公開しないのはなぜですか?どちらもクロージャにあるため、内側のjQueryと外側のjQueryでの名前の衝突のみです。

4

2 に答える 2

5

jQuery.noConflict(true)jQueryのグローバル名を削除します。ただし、オブジェクトに何らかの名前を使用せずにjQueryライブラリの残りの部分をプログラムすることは不可能であるため、ローカルの非公開名を使用する必要があります。便宜上、jQuery無名関数のスコープ内で変数として再定義します。

于 2012-04-24T07:50:24.493 に答える
0

パターン自体はモジュールパターンと呼ばれます。これはjQueryに固有のものではなく、奇妙ではありませんが非常に役立ちます。これにより、オブジェクトの状態と実装を非表示にできます。また、特権メソッド(プライベートデータにアクセスできるパブリックメソッド)やその他の優れた設計原則も可能になります。

于 2012-04-24T07:57:33.597 に答える