jQueryの clone() メソッドは、 var obj = {
chart: {
type: 'spline',
inverted: true
},
title: {//标题文字
text: 'Atmosphere Temperature by Altitude'
},
...
};
をカスタマイズしたときに、別のobj2をカスタマイズしてobjの内容をコピーしたいときに、
var obj2 = obj.clone();
を使用します。そのobjを無視したことがはっきりとわかりますは単なる オブジェクト であり、 clone() メソッドはありません。したがって、これは明らかに間違ったデモンストレーションです。ただし、jQuery に付属の clone() メソッドは、今度は、あるオブジェクトを別のオブジェクトにコピーするという私のニーズを満たすことができなくなりました。 clone(obj); 浅いレベルのコピー: 非基本
データ型の場合、クローン作成後、結果として 2 つのポインターは同じメモリ空間を指すため、一方のオブジェクトが操作されると、もう一方のオブジェクトの内容も変更されます。内部のパラメータを変更したい場合は、次のメソッドを使用できますディープコピー: コピーと同様に、指定されたオブジェクトのすべての プロパティとメソッド
を、新しいオブジェクトが指すオブジェクトにコピーします。これにより、新しいオブジェクトへの変更やその他の操作が元のオブジェクトに影響を与えなくなります。 。var cloneObj = function(obj){ var str, newobj = obj.constructor === Array ? [] : {}; if(typeof obj !== 'object'&& typeof obj !=='function'){ return; }else { for(var i in obj){ newobj[i] = typeof obj[i] === 'object' ? cloneObj(obj[i]) : obj[i]; } } return newobj; }; //克隆 var obj2=clone(obj);ログイン後にコピー
obj2.title.text = "XXX";
$.extend(true,obj,{});
ユニオン効果を取得するコードは次のとおりです
obj2 = $.extend(true,obj,obj2);
obj2 = $.extend(true,obj,obj2);
の前に次のコードを追加することを選択できます。 :
りー
以上がjQuery での clone() と extend() の比較と使用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。