-
Notifications
You must be signed in to change notification settings - Fork 2
Closed
Labels
questionFurther information is requestedFurther information is requested
Description
질문
객체의 참조값을 복사해 이용하는 경우가 있나요?
상세내용
객체를 할당할 경우, 그 객체의 주소값을 참조한다.
그렇기에, 원본 또는 사본 중 어느 한쪽에서 객체를 변경하면 서로 영향을 주고 받는다.
참고
let person = {
name: 'live-small',
age : '24',
}
let newPerson = person;
newPerson.name = "minji";
console.log(person.name); // minji 연관챕터
11장 (p151)
추가공부
객체의 참조값을 복사하게 되면 구조적 부작용이 많다. 그렇다면 객체를 어떻게 복사할 수 있을까?
객체의 복사
- 얕은 복사는 한 단계 깊이까지만 복사하는 경우를 의미.
- 구현 : array.slice(obj), { ...obj }, Object.assign({ }, obj)
- 깊은 복사는 객체에 중첩되어 있는 객체까지 모두 복사함.
- 구현 : 재귀, JSON.parse & JSON.stringify
JSON.parse & JSON.stringify 동작방식
- JSON.stringify : 원시값 혹은 객체를 모두 문자열(원시값)으로 변환
- JSON.parse : 문자열을 다시 js 데이터 타입에 맞춰 변환
핵심문자열은 원시타입이기에 변경될 수 없다 -> 새로 할당됨
let origin = [ 1, 2, [ 'string', 'json' ];
let deepCopy = JSON.parse(JSON.stringify(origin)); ref
Metadata
Metadata
Assignees
Labels
questionFurther information is requestedFurther information is requested