FrontEngineer JungBam
깊은 복사와 얕은 복사 본문
깊은 복사 : 값을 복사하는 것.
얕은 복사 : 값을 갖고있는 주소값을 복사하는 것.
→ 이 때에는 실제 값을 갖고 있는 메모리 셀이 변경되면 주소값을 복사했기 때문에 그 값이 의도하지 않더라도 변하게 됨.
★ 이러한 얕은 복사로 인한 원본 손상에 대한 방지를 위한 Object 메소드로 Object.freeze()가 있다.
깊은 복사와 얕은 복사를 각각 사용해야 할 경우를 고민하고 사용해야함.
스프레드 연산자를 이용한 깊은 복사
☞ 배열이나 깊이가 1인 객체의 경우 가능하나, 깊이가 2 이상인 경우 참조값에 따른 값을 가져오는 것이 아니기 때문에 어려움.
☞ 깊이가 2 이상인 객체의 깊은 복사는 별도의 방법이 필요함.
「
① JSON객체 사용
- const 식별자 = JSON.parse(JSON.stringify(복사할 객체))
- 성능적으로는 별로임.
② Object 객체 메소드 assign() 사용
- const 식별자 = Object.assign({}, 복사할 객체)
- Object 객체의 내부 메소드로 호환성이 우수함.
③ lodash 라이브러리의 clone 메소드 사용
- const 식별자 = _.cloneDeep(복사할 객체)
」
반응형
'자바스크립트 개념' 카테고리의 다른 글
전역 변수의 문제점 (0) | 2022.11.18 |
---|---|
var에서 let, const로 바뀐 이유 (0) | 2022.11.18 |
JavaScript의 타입 / 자료구조 (0) | 2022.11.18 |
스코프, 섀도잉 (0) | 2022.11.12 |
혼공스(챕터5) 별도정리 : 타이머 함수 (0) | 2022.11.12 |
Comments