El método de copia de objetos es un punto difícil, especialmente la copia profunda. Se recomienda ejecutar el código para ayudar a comprender la copia.
1. método json
-
Situación adecuada:
clon profundo del objeto JSON. El método es primero convertir JSON.stringify () a una cadena json, y luego JSON.parse () a una matriz json -
Desventajas:
a) Si hay funciones en su objeto, la función no se puede copiar
b) Las propiedades y métodos de la cadena de prototipos del objeto copyObj no se pueden copiar .
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);