Object.assign()
Object.assign(A, B, C, ....)
const target = Object.assign({}, userAge, userEmail)
- A 객체에 B, C, ... 객체들의 키:값들을 한번에 붙여넣어서 새로운 객체를 생성한 후 그 객체를 반환한다.
- A 객체는 원본이 수정된다.
- A 객체에 빈 객체 {}를 넣을 수도 있다.
** 얕은 복사 vs 깊은 복사
const user = {
name: 'lee',
age: 25,
emails: ['[email protected]']
}
const copyUser = Object.assign({},user)
- Object.assign({},user) 을 통해서 user 객체를 빈 객체에 통째로 복사한다.
- 새로 생성된 객체의 name, emails 속성들은 user의 name, emails가 참조하는 메모리 주소를 동시에 참조하게 된다.
- 따라서 user 객가 사라지면 새로 생성된 객체의 name, emails 참조 주소 또한 사라지므로 문제가 된다. (얕은 복사)
import _ from 'lodash'
const copyUser = _.cloneDeep(user)
Object.keys()
const keys = Object.keys(A)
- A 객체의 key 만을 추출해서 새로운 배열을 반환한다.