jQuery がどのように機能するかを把握するためだけに、jQuery の根性をいじっています。おおむね理解できているのですが、何か気になります。
jQueryでは、実際にjQueryオブジェクトを作成するためにこれがあります(オンライン60
):
jQuery = function( selector, context ) {
// The jQuery object is actually just the init constructor 'enhanced'
return new jQuery.fn.init( selector, context, rootjQuery );
},
このinit
方法は長いので、コピペは割愛します (見たい場合はソースを確認してください。オンラインにあります123
)。このメソッドは、 から利用できますjQuery.prototype
。基本的に、引数を見て、要素の選択についていくつかの決定を下します。
スクリプトのさらに下 (オンライン19174
) には、次のようなものがあります。
// Expose jQuery to the global object
window.jQuery = window.$ = jQuery;
この行をコメントアウトしても$
、グローバル オブジェクトで引き続き使用できるため、これは興味深いことです。
なぜこれが必要なのですか?jQuery
メソッドを呼び出す関数がいずれかinit
のグローバルを作成するよう$
です。これを Chrome、Firefox、Safari でテストしたところ、すべてExpose jQuery to the global object
回線なしで問題なく動作しました。
これは古いブラウザと下位互換性のためですか??