객체복사
let user = {
name: “john”,
age: 27,
};
객체를 복사하는 방법 2가지 (얕은 복사, 깊은 복사)
얕은 복사
using Object
let admin = Object.assign({}, user);
오브젝트 내의 assign 내부함수를 이용해서 두 객체를 병합해서 반환
빈 객체에 user 객체를 머지시켜서 반환
for loop
let admin = {};
for (let key in user){
admin[key] = user[key];
}
user에 있는 값을 admin에 일일이 복사해라
전개연산자
let admin = { …user };
user에 있는 모든 필드 값을 admin object에 꾸려라
얕은 복사(shallow copy)의 문제점
객체 내 또 다른 객체가 있다면 복사되지 않는다
→ 객체 내 또 다른 객체는 주소값을 복사해오기 때문에 결국 같은 곳을 가르키게 됨
→for문과 json 객체(stringify 객체를 문자열로 변환 원본 객체와 참조 끊김)복사로 해결가능
깊은복사
JSON 객체를 이용
let admin_json = JSON.parse(JSON.stringify(user));
// stringfy : js object → string, parse: string → js object
stringify : 객체를 문자열로 변환
parse : 문자열을 다시 객체로 변환
→ 원본 객체와 참조 끊김
그러므로 객체에 대한 복사를 하려면 깊은 복사를 사용하는게 좋다.
'Java Script' 카테고리의 다른 글
[자바스크립트] 산술, 대입 연산자 (0) | 2023.06.02 |
---|---|
[자바스크립트] 형 변환(String, Number, boolean) 정수 실수 변환(parseInt, parseFloat) (0) | 2023.06.02 |
[Java Script] Array filter() 함수 사용방법 (0) | 2022.09.05 |
[Java Script] undefined과 null 타입 차이 (0) | 2022.07.24 |
[Java Script] slice, splice 차이 / 배열에서 원하는 요소를 삭제, 추가하는 방법 (0) | 2022.07.21 |