ホームページ > 記事 > ウェブフロントエンド > jQueryのソースコード解析メモ(2) 変数list_jquery
_jQuery = window.jQuery;
_$ = window.$;
これら 2 つの変数は、jQuery で使用される 2 つの唯一の変数です。 jQuery.noConflict() 関数では、これら 2 つの変数が復元されます。
ブラウザ検出の場合、jQuery は機能検出の代わりに UserAgent のチェックを使用します。
rwebkit = /(webkit)[ /]([w.] )/,
ropera = /(opear)(?:.*version)?[ /](w )/,
rmsie = /(msie) ([w.] )/,
rmozilla = /(mozilla)(?:.*? rv:([w.] ))?/,
初期化関数 init
jQuery ペアJSオブジェクトの処理は複雑で、最終的な目標はjQueryセレクターで得られた結果を配列のようなオブジェクトにすることです。長さ、最初、最後などがあります。 $("...") は DOM ツリーからいくつかのノードを選択するためです。ただし、$ には、ページのロード後の初期化と実行によく使用される $(function() { ... }) や $("<..>...") など、他の多くの関数もあります。ノードを直接取得し、DOM ツリーに追加するために使用されます。
次のステップは、93 行目から始まる長い init 関数です。初期化: function(selector, context, rootjQuery)
手順:
1. セレクターは不正なパラメーターです。空の文字、null、および未定義の場合は、これを直接返します。つまり、デフォルトのプロパティを持つ jQuery オブジェクトです。
2. セレクターは DOMElement です。つまり、getElementById などのネイティブ JS を使用して要素を取得します。これは、ネイティブ DOM オブジェクトを $ でラップすることと同じです。この要素を内部配列の最初の位置に配置し、長さを 1 に設定します。それから戻ります。
3. 特殊な最適化処理 $("body")。それが document.body 要素です。
4. セレクターは で終わる文字列です。そこで、文字列を使用して新しい DOM 要素を作成するとします。たとえば、$("