4

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回線なしで問題なく動作しました。

これは古いブラウザと下位互換性のためですか??

4

1 に答える 1

2

jQuery ライブラリはクロージャで定義されており、その行は実際にライブラリをグローバル スコープに公開するものです。

alert($)

フィドルhttp://jsfiddle.net/RBG7P/1/でその行にコメントしようとしましたが、例外がスローされました。コメントを外すと、うまくいきました。

あなたはそれを正しい方法でやっていると確信していますか?

于 2013-03-25T17:11:32.537 に答える