본문 바로가기

프로그램/javascript

[JAVASCRIPT]Object.assign 문법 확인

반응형

Object.assign 문법 확인



열거할 수 있는 하나 이상의 소스 오브젝트로 부터 타켓 오브젝트로 프로퍼티들을 복사하는데 사용



Object.assign(target, ...sources)


참조를 복사한다고 함

=> 원본 변경 시 같이 변경됨


다른 방법 

JSON.parse(JSON.stringify(a)) 인듯함


결론은 병합을 하는 것 이였음


url : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Object/assign



소스

<html>

<body>

<script type="text/javascript">

var ori = {a:1, b:2, c:3};

console.log(ori);

var cpy = Object.assign({}, ori);

console.log(cpy);

cpy.c = 4;

cpy.d = 5;

console.log(ori);

//큰 영향 없음

//ori 에 객체형이 있을 경우

//그 객체를 복사한 obj에서 변경할 경우 값참조가 됨 그외에는 값참조 아닌듯

var ori2 = {a:1, b:2, c:3, d:{a:1}};

var cpy2 = Object.assign({}, ori2);

console.log(ori2);

cpy2.d.a = 5;

console.log(cpy2);

console.log(ori2);

//병합

var o1 = {a:1, b:2, c:3};

var o2 = {a:2, b:3};

var o3 = {a:3};

var c1 = Object.assign(o1, o2, o3);

console.log(o1);

console.log(o2);

console.log(o3);

console.log(c1);

</script>

</body>

</html>