728x90
JavaScript의 Object.assign()메서드 사용법을 알아보자.
불변성(immutable)을 지켜야 된다면 Object.assign을 사용하는 것 보다 스프레드 연산자를 사용하는 것이 좋다.
Object.assign으로 불변성을 지키려면 target에 항상 {} 빈 객체를 인자로 전달해야 한다.
const userAge = {
name:'홍길동',
age:25
}
const userEmail = {
name:'홍길동',
email:'link2me@gmail.com'
}
/***
* Object.assign(target, ...sources);
* target : 출처 객체의 속성을 복사해 반영한 후 반환할 객체
* source : 목표 객체에 반영하고자 하는 속성들을 갖고 있는 객체들
* 목표 객체의 속성 중 출처 객체와 동일한 키를 갖는 속성의 경우,
* 그 속성 값은 출처 객체의 속성 값으로 덮어쓴다.
*/
const target = Object.assign({}, userAge, userEmail);
console.log(target);
// { name: '홍길동', age: 25, email: 'link2me@gmail.com' }
console.log(userAge);
// { name: '홍길동', age: 25 }
console.log(target === userAge); // false
const a = { k: 123 }
const b = { k: 123 }
console.log(a === b); // false
|
const userAge = {
name:'홍길동',
age:25
}
const userEmail = {
name:'홍길동',
email:'link2me@gmail.com'
}
/***
* Object.assign(target, ...sources);
* target : 출처 객체의 속성을 복사해 반영한 후 반환할 객체
* source : 목표 객체에 반영하고자 하는 속성들을 갖고 있는 객체들
* 목표 객체의 속성 중 출처 객체와 동일한 키를 갖는 속성의 경우,
* 그 속성 값은 출처 객체의 속성 값으로 덮어쓴다.
*/
const target = Object.assign(userAge, userEmail);
console.log(target);
// { name: '홍길동', age: 25, email: 'link2me@gmail.com' }
console.log(userAge);
// { name: '홍길동', age: 25, email: 'link2me@gmail.com' }
console.log(target === userAge); // true
const a = { k: 123 }
const b = { k: 123 }
console.log(a === b); // false (서로 다른 객체)
|
728x90
'React > morden javascript' 카테고리의 다른 글
Javascript Object keys() (0) | 2023.10.17 |
---|---|
Javascript 클로저(Closure) (0) | 2023.10.06 |
자바스크립트 일급객체(first class citizen) (0) | 2022.12.28 |
[ES2020] optional chaining (0) | 2022.12.28 |
[ES6] 비구조화 할당(destructuring assignment) (0) | 2022.12.28 |