var c = Object.assign({},b); 객체 얕은 복사, 객체 복사 방법

1
var a = {x:1,y:2};
var b = {a:a,y:2};
var c = Object.assign({},b);

JSON.stringify(c)
=>"{"a":{"x":1,"y":2},"y":2}"

a.x = 100;
JSON.stringify(c)
=>"{"a":{"x":100,"y":2},"y":2}"
// c.a 는 a 이기 때문(객체를 적용하면, 참조로 값이 제어됨)에 a.x로 바꾸면 참조로 연결된 c.a.x 도 바뀐다.

b.y=200
=>JSON.stringify(c)
"{"a":{"x":100,"y":2},"y":2}"
// b.y와 c.y는 서로 별개이다. 변수가 기본형이라서 값이 복사되어서 별개로 동작한다.



deep clone 으로 동작시키고 싶으면
var obj1 = {x:1,y:2}
var obj2 = JSON.parse(JSON.stringify(obj1));
처럼 하는 방법이 있다.
댓글
  • No Nickname
    No Comment
  • 권한이 없습니다.
    {{m_row.m_nick}}
    -
목록형 📷 갤러리형
제목
[기본형] HTML (with 부트스트랩5.3 , jquery 3.7, vue.js)
유용한 리눅스(LINUX) 명령어
[공지] 기술 게시판
2.25
2.27
2.28
3.1
3.2
3.3
3.4
3.5
3.7
3.9
3.11
3.12
3.13
3.14
3.15
3.16
3.17
3.18
3.19
3.20
3.21
3.22
3.23
3.24
3.25
3.27
3.28
3.29
3.30
3.31
4.1
4.2
4.3
4.4
4.5
4.6