JavaScript의 얕은 복제 & 깊은 복제
흔히 하는 실수 '=' 연산자 사용 let origin = { num : 1 } let clone = origin origin.num = 2 console.log(clone) // { "num" : 2 } 객체는 '참조타입(reference type)'이기 때문에 객체를 '='로 복사하면 값이 아니라 메모리 주소값 참조를 복사한다. 즉, clone과 origin는 같은 메모리를 사용한다는 것이다. 그러므로 콘솔에 찍어보면 하나의 객체가 2개의 변수에 의해서 공유되고 있는걸 확인할 수 있다. (하나의 변수를 통해 값을 바꿨지만, 다른 변수의 값도 함께 바뀌었다) console.log(origin === clone) 따라서, 객체를 비교할 때 참조가 같은지 비교하는 '===, =='로 비교해보면 'true'..
2020.01.30