オブジェクトコピーの方法は、特にディープコピーでは難しい点です。コピーを理解しやすくするために、コードを実行することをお勧めします。
1.jsonメソッド
-
適切な状況:
JSONオブジェクトのディープクローン。この方法では、最初にJSON.stringify()をjson文字列に変換し、次にJSON.parse()をjson配列に変換します。 -
短所:
a。オブジェクトに関数がある場合、関数をコピーできません
。b。copyObjオブジェクトのプロトタイプチェーンのプロパティとメソッドをコピーできません。
var obj = {
x: 1,
y: {
a: 1,
b: 0,
c: [1, 2, 3]
}
};
// 相同的引用
var obj2 = obj;
console.log(obj2 == obj); //true 直接复制只是复制对象的指针,还指向同一个对象
//不同的引用
var obj3 = JSON.parse(JSON.stringify(obj));
console.log(obj3 == obj) //false 通过json方法复制后的地址不一样
console.log(obj3);