Javascript
Object.assign 의 사용법
땅개발자
2022. 6. 19. 20:55
Object는 참조복사
const output = (obj: {}) => {
console.log(JSON.stringify(obj, null, 2));
};
const change = (obj: any) => {
obj['xxx'] = 1;
};
const objectA = {
aaa: 10,
bbb: 5,
};
output(objectA);
// {
// "aaa": 10,
// "bbb": 5
// }
change(objectA);
output(objectA);
// {
// "aaa": 10,
// "bbb": 5,
// "xxx": 1
// }
Object.assign 의 복사
const output = (obj: {}) => {
console.log(JSON.stringify(obj, null, 2));
};
const change = (obj: any) => {
obj['xxx'] = 1;
};
const objectA = {
aaa: 10,
bbb: 5,
};
output(objectA);
// {
// "aaa": 10,
// "bbb": 5
// }
change(Object.assign({}, objectA));
--> 별도의 배열을 파라메터로 전달한다.
output(objectA);
// {
// "aaa": 10,
// "bbb": 5,
// }
Object.assign 의 Merge
첫번째 파라메터에 두번째 이후의 파라메터를 Merge할 경우에 사용한다.
복사를 하고 싶을 경우엔, 첫번째 파라메터에 {} 를 지정한다.
const output = (obj: object) => {
console.log(JSON.stringify(obj, null, 2));
};
const objectA = {
aaa: 10,
bbb: 5,
};
const objectB = {
aaa: 20,
ccc: 3,
};
output(Object.assign(objectA, objectB));
// {
// "aaa": 20,
// "bbb": 5,
// "ccc": 3
// }
output(objectA);
// {
// "aaa": 20,
// "bbb": 5,
// "ccc": 3
// }
output(objectB);
// {
// "aaa": 20,
// "ccc": 3
// }