객체 복사 방법은 어려운 점, 특히 깊은 복사입니다. 사본을 이해하는 데 도움이되도록 코드를 실행하는 것이 좋습니다.
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);