티스토리 뷰

깊은 복사는 주소값을 다르게 갖는 것이고 얕은 복사는 주소값을 같이 쓰는 것이다.

//배열, 객체는 그것 그대로 복사하면 이렇게 값이 하나만 바뀌어도 둘 다 영향을 받는다.
let arr1 = [2,3,4];
let arr2 = arr1;
arr1[0] = 100;
console.log(arr2); // [ 100, 3, 4 ]
// 바닐라 JS로는 JSON.parse(JSON.stringify 이것을 써야 한다. 하지만 '현업'에서는 쓰지 않는다고 한다.

const newProfile = {
name : "sam",
    hobby : {one : "hunting", two : "running"},
age : 8
}

JSON.stringify(newProfile)
//'{"name":"sam","hobby":{"one":"hunting","two":"running"},"age":8}'

JSON.parse(JSON.stringify(newProfile))
//{name: 'sam', hobby: {…}, age: 8}

const newProfile2 = JSON.parse(JSON.stringify(newProfile));

 

현업에서는 lodash를 쓴다고 한다. (참고 lodash란 (tistory.com))


얕은 복사

얕은 복사는 배열 안의 객체의 값이 같이 바뀐다. 유념하자.

깊은 복사

깊은 복사는 서로 다른 주소를 갖기 때문에 철수의 이름이 그대로 나왔다.

'개발자 > 그냥 js' 카테고리의 다른 글

템플릿 리터럴  (0) 2022.01.12
Callback 콜백이란  (1) 2022.01.12
spread syntax vs rest syntax  (0) 2022.01.12
구조분해할당, Destructuring assignment  (0) 2022.01.12
var let const 차이점 그리고 호이스팅  (0) 2022.01.12
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함