<aside> 👉 : 객체의 최상위 속성을 복사하여 새 객체를 생성 : , 중첩된 객체는 원본 객체를 참조
let animal1 = {
name: '푸들이',
owner: {
name: '테드',
job: 'FrontEnd-developer',
},
};
let animal2 = animal1; // 동일한 객체를 참조
animal2.name = '멍멍이';
animal2.owner.name = 'Ted';
console.log(animal1.name); // 멍멍이
console.log(animal1.owner.name); // Ted
console.log(animal1); // { name: '멍멍이', owner: { name: 'Ted', job: 'FrontEnd-developer' } }
console.log(animal2); // { name: '멍멍이', owner: { name: 'Ted', job: 'FrontEnd-developer' } }
<aside>
👉 : 원본 객체의 값을 완전히 복제하여 새로운 객체를 생성
: 원본 객체와 복사본이 서로 독립적
JSON.parse(JSON.stringfy(obj))
메서드를 사용
JSON.stringify()
: 입력받은 객체를 JSON 문자열로 변환
JSON.parse()
: JSON 문자열을 다시 JS 객체로 변환 >> 새로운 메모리 위치에 할당
</aside>
let animal3 = JSON.parse(JSON.stringify(animal1));
console.log(animal1.name); // 멍멍이
console.log(animal3.name); // 멍멍이
animal3.name = '딸기';
console.log(animal1.name); // 멍멍이
console.log(animal3.name); // 딸기
let book = {
title: '어린왕자',
author: '생택쥐페리',
publishYear: 1943,
};
console.log('title' in book); // true
console.log('publishYear' in book); // true
console.log('hello' in book); // false
delete book.author;
console.log('author' in book); // false