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回線なしで問題なく動作しました。
これは古いブラウザと下位互換性のためですか??