4

プラグインを jQuery プロトタイプ プロパティに割り当てます。jQueryで「new」を使用しない場合、これを行う意味は何ですか? jQuery のインスタンスは 1 つだけですよね? では、プラグインをシングルトン jQuery オブジェクトに直接割り当てることはできなかったのでしょうか?

4

1 に答える 1

3

プラグインメソッドは、作成される新しいjQueryオブジェクトごとに自動的に追加される必要があります。

jQuery.fnjQuery.prototypeプラグインメソッドを割り当てることは、それをjQueryプロトタイプに追加することと同じであるためjQuery.fn、新しいjQueryオブジェクトが作成されるたびに、そのメソッドが自動的に使用可能になります。技術的にはjQuery.fn.initオブジェクトですが、考え方は同じです。

次のような文字列を使用してjQueryを呼び出す:

$(".foo")

jQuery.fn(プラグインメソッドが定義されている)からプロトタイプを取得する新しいjQuery.fn.initオブジェクトを作成します。

新しいオブジェクトが作成されることを示す関連するjQueryコードは次のとおりです。

// Define a local copy of jQuery
var jQuery = function( selector, context ) {
    // The jQuery object is actually just the init constructor 'enhanced'
    return new jQuery.fn.init( selector, context, rootjQuery );
},


// Give the init function the jQuery prototype for later instantiation
jQuery.fn.init.prototype = jQuery.fn;
于 2012-09-23T01:17:42.773 に答える