ホームページ >ウェブフロントエンド >jsチュートリアル >JQuery_jqueryのextendメソッドの実装原理を解析する
長いこと投稿していませんでしたが、今日は突然JQueryのextendメソッドの実装原理を分析してみました。目的は、JQuery についての理解を深め、JavaScript マスターがどのように JS を作成するかを理解することです。不備があれば修正してください。ありがとう!
以下は JQuery.extend メソッドのソースコードです:
上の図から、2 つの学生オブジェクトが 1 つの友人オブジェクトを共有していることがわかります。一方の当事者による友人オブジェクトに対する操作は、もう一方の当事者にも表示されます。たとえば、友人の姓を「zhangsan」に変更すると、他のオブジェクトにもそれが表示されます。
上の図からわかるように、両方の生徒オブジェクトには独自の友人オブジェクトがあり、一方の変更は他方に対して完全に透過的です (影響はありません)。上記はディープコピーに関する私の理解です。もし間違っている場合は、笑わないでください。
それでは、JQuery.extend メソッドはどのようにしてシャロー コピーとディープ コピーを実装するのでしょうか?
JQuery.extend の使用方法: 1. JQuery.extend (ソースオブジェクト)
ソース オブジェクトを jQuery オブジェクトに展開します。つまり、ソース オブジェクトのプロパティとメソッドを jQuery にコピーします。ターゲット オブジェクトとして jQuery を使用します。ソース コードは次のとおりです:
コードをコピーします
コードをコピーします
コードは次のとおりです:
上記の例から、展開されたオブジェクト ($) またはソース オブジェクト (person) による言語配列の変更は相手に影響を与えることがわかります。これは浅いコピーです
2. JQuery.extend (ターゲットオブジェクト、ソースオブジェクト)
浅いコピーを使用して、ソース オブジェクトのプロパティとメソッドをターゲット オブジェクトにコピーします。
[例] person オブジェクトと Student オブジェクトをそれぞれ作成し、jQuery.extend メソッドを通じて person の属性とメソッドを Student オブジェクトに拡張します。
このメソッドのブール値パラメータは、ディープ コピーを使用するかどうかを示します。 true の場合、ディープ コピーが使用されます。
【例】personオブジェクトをjQueryオブジェクトに拡張する
4. JQuery.extend (ブール値、ターゲット オブジェクト、ソース オブジェクト)
ディープ コピーを使用してソース オブジェクトをターゲット オブジェクトに拡張するかどうかを決定します。以下のように:
[例] person オブジェクトと Student オブジェクトをそれぞれ作成し、jQuery.extend メソッドを通じて person の属性とメソッドを Student オブジェクトに拡張します。
コードをコピーします