ホームページ  >  記事  >  ウェブフロントエンド  >  jQueryプラグインdevelopment_jqueryのextendメソッドの詳細説明

jQueryプラグインdevelopment_jqueryのextendメソッドの詳細説明

WBOY
WBOYオリジナル
2016-05-16 17:13:591079ブラウズ

Jquery の拡張メソッド extend は、プラグインを作成するときによく使用されるメソッドです。
dest は、統合される空間です。

src は JSON 式で表される JavaScript オブジェクトです。したがって、メソッド属性を追加できます...

プラグイン開発を実現するために、さまざまなアプリケーションを通じて独自のメソッドを jQuery 空間に統合できます

jQuery で定義 jQuery.extend = jQuery.fn.extend したがって、これら 2 つの関数式は同じです

1. Jquery の拡張メソッドのプロトタイプは次のとおりです:

extend(dest,src1,src2,src3...);

その意味は、src1、src2、src3... を dest にマージすることであり、戻り値はマージされた dest です。このメソッドはマージ後に dest の構造を変更していることがわかります。マージ結果を取得したいが、dest の構造を変更したくない場合は、次のように使用できます:

var newSrc=$.extend({},src1,src2,src3...)//つまり、dest パラメータとして「{}」を使用します。


このようにして、src1、src2、src3... をマージすることができ、マージ結果が newSrc に返されます。例:

コードをコピー コードは次のとおりです:

var result=$.extend ({} 、{名前:"トム"、年齢:21}、{名前:"ジェリー"、性別:"男の子"})

次にマージ結果

コードをコピーします コードは次のとおりです:

結果={name :"Jerry",age:21,sex:"Boy"}

つまり、後のパラメータが前のパラメータと同じ名前を持つ場合、後のパラメータは以前のパラメータ値を上書きします。

2. dest パラメータを省略します。
上記の extend メソッド プロトタイプの dest パラメータは省略できます。省略した場合、メソッドは src パラメータを 1 つだけ持つことができ、dest パラメータは次のようになります。 src を extend メソッドを呼び出すオブジェクトにマージします (例:
1, $.extend(src)
) このメソッドは、src を jquery のグローバル オブジェクト (例:

) にマージします。 コードをコピー コードは次のとおりです:

$.extend({ hello:function(){alert('hello ');} });

は、jquery のグローバル オブジェクトに hello メソッドをマージします。
2. $.fn.extend(src)
このメソッドは、次のように src を jquery インスタンス オブジェクトにマージします。
コードをコピーします コードは次のとおりです:

$.fn.extend({ hello:function(){alert('hello');} });

は、hello メソッドを jquery インスタンス オブジェクトにマージすることです。

次に、一般的に使用される拡張機能の例をいくつか示します:

$.extend({net:{}});

これは、jquery グローバル オブジェクトのネット名前空間を拡張します。

コードをコピー コードは次のとおりです。

$.extend($.net,{ hello:function (){alert('hello');} })

これは、以前に拡張された Jquery net 名前空間に hello メソッドを拡張します。

3. Jquery の extend メソッドにもオーバーロードされたプロトタイプがあります:

extend(boolean,dest,src1,src2,src3...)

最初のパラメータのブール値は、ディープ コピーを実行するかどうかを表します。他のパラメータは前に紹介したものと同じです。例を見てみましょう。

コードをコピー コードは次のとおりです:

var result=$.extend( true, {}, { name: "John", location: {city: "Boston",county: "USA"} }, { last: "Resig", location: {state: "MA",county:"China"} } );

src1 location:{city:"Boston"} のネストされたサブオブジェクトを確認できます。サブオブジェクト location:{state:"MA"} も src2 にネストされており、その後、マージされた結果が表示されます。
コードをコピー コードは次のとおりです:

result={name:"John ",last:"Resig", location:{city :"Boston",state:"MA",county:"中国"}}

つまり、src 内のネストされたサブオブジェクトもマージされます。最初のパラメーターのブール値が false の場合、次のようにマージの結果がどのようになるかを見てみましょう:

コードをコピー コードは次のとおりです:

var result=$.extend( false, {}, { name: "John" , location: {city: "Boston",county:"USA"} }, { last: "Resig", location: {state: "MA",county:"China"} } );

マージされた結果は次のようになります:
コードをコピーします コードは次のとおりです:

result={name:" John",last:"Resig",location:{state:"MA",county:"中国"}}

上記は、$.extend() がプロジェクトでよく使用される詳細の一部です。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。