const user = {
name: 'Heropy',
age: 85,
emails: ['thesecon@gmail.com']
}
const copyUser = {...user};
console.log(copyUser === user); // false
const user = {
name: 'Heropy',
age: 85,
emails: ['thesecon@gmail.com']
}
const copyUser = Object.assign({}, user);
console.log(copyUser === user); // false
위 얕은 복사 코드에 이어서...
user.emails.push('neo@zillinks.com');
console.log(user.emails === copyUser.emails); // true
true
가 나옵니다.emails
가 배열인 점에 주목해봅니다. 우리는 참조형 데이터인 user 객체를 복사처리를 했지만, 같은 참조형 데이터인 emails배열을 복사처리를 한적은 없습니다.npm i lodash
로 lodash 설치 후,
import _ from 'lodash';
const user = {
name: 'Heropy',
age: 85,
emails: ['thesecon@gmail.com']
}
const copyUser = _.cloneDeep(user);
console.log(copyUser === user); // false
user.emails.push('neo@zillinks.com');
console.log(user.emails === copyUser.emails); // false