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.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
2.10
2.11
2.12
2.13
2.14
2.15
2.16
2.17
2.18
2.19
2.20
2.21
2.22
2.23
2.24
2.25
2.26
2.27
2.28