728x90
1. Input(학습)
2. Output(복습)
- 객체끼리 비교, 복사
3. Notes(정리)
객체를 deep copy 하는 2가지 방법( ❊객체 내 메소드에는 적용 불가 )
- 전개연산자 사용하기
- Object.assign 메소드 사용
1. 전개연산자를 사용하여 객체를 deep copy 하는 방법
const a = {
num : 1,
};
const b = {...a};
console.log(a.num); // 1
console.log(b.num); // 1
console.log(a === b); // false
2. Object.assign 메소드를 사용하여 객체를 deep copy 하는 방법
const a = {
num : 1,
};
const b = Object.assign({}, a);
console.log(a.num); // 1
console.log(b.num); // 1
console.log(a === b); // false
객체 안의 메소드까지 deep copy 하는 방법
문자열로 바꾸고 다시 파싱하여 객체로 바꾼다.
const obj1 = {
a : {
b: 1,
},
};
const obj2 = JSON.parse(JSON.stringify(obj1));
obj1.a.b = 2;
console.log(obj1.a.b); // 2
console.log(obj2.a.b); // 1
4. Reminder
- 객체끼리 비교할 경우 생성 당시의 주소값을 비교함. 따라서 깊은복사하여 서로 같은지 비교 시 false, 얕은복사하여 서로 비교시 true 이다.
728x90
'기록 > Today I learned' 카테고리의 다른 글
22.10.24 TIL (0) | 2022.10.24 |
---|---|
22.10.21 TIL (0) | 2022.10.21 |
TIL 220408 (0) | 2022.04.08 |
TIL 220406 (0) | 2022.04.06 |
TIL 220405 (0) | 2022.04.05 |