일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- elasticsearch
- Infra
- 사설 ip
- 오블완
- 티스토리챌린지
- UnBuffered channel
- golang
- 코사인 유사성 메트릭스
- go
- AWS
- 윈도우키보드
- body size
- 디자인패턴
- apollo router
- Kubernetes
- m4 pro
- GoF
- notification system
- 배포 파이프라인
- kube-prometheus-stack
- goland
- Buffered channel
- cosine similarity metric
- Intellij
- 대규모 시스템 설계
- Logrus
- http 413
- gitops
- intellij ide
- 배포 프로세스
Archives
- Today
- Total
Fall in IT.
Javascript 객체 복사(얕은 복사, 깊은 복사)하는 방법 본문
반응형
안녕하세요.
오늘은 Javascript에서 객체를 복사하는 방법에 대해서 알아보겠습니다.
객체를 복사하는 방법에는 얕은 복사 방법이있고 깊은 복사 방법이 있습니다.
얕은 복사와 깊은 복사
얕은 복사란, 객체의 첫 번째 부분만 복사하는 것을 의미합니다.
Object의 내장객체인 assign() 함수를 사용하여 구현합니다.
깊은 복사란, nested한 객체의 모든 하위 객체까지 복사하는 것을 말합니다.
JSON.parse()와 JSON.stringify() 함수를 사용하여 구현합니다.
코드
/** * 얕은 복사 * * @param {*} obj */ function shallowObjectCopy(obj) { let copyObj = {}; Object.assign(copyObj, obj) return copyObj; } /** * 깊은 복사 * * @param {*} obj */ function deepObjectCopy(obj) { return JSON.parse(JSON.stringify(obj)); } let user = { name: "이두영", age: 30, etc: { nickname: "dylee", height: "190" } }; let shallow = shallowObjectCopy(user); let deep = deepObjectCopy(user); console.log('shallow: ', shallow); //expected output: user console.log('deep: ', deep); //expected output: user // 원본 객체의 nickname 변경 user.etc.nickname = "mango"; /** * expected output: * { * name: "이두영", * age: 30, * etc: { * nickname: "mango", * height: "190" * } * } */ console.log('user: ', user); //expected output: {... nickname: mango ...}; /** * expected output: * { * name: "이두영", * age: 30, * etc: { * nickname: "mango", * height: "190" * } * } */ console.log('shallow: ', shallow); /** * expected output: * { * name: "이두영", * age: 30, * etc: { * nickname: "dylee", * height: "190" * } * } */ console.log('deep: ', deep);
참조
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Object/assign
반응형
'프로그래밍언어 > Javascript & Typescript' 카테고리의 다른 글
TypeScript 배열 안의 객체 확인하는 방법 (0) | 2020.01.01 |
---|---|
TypeScript(JavaScript) Array.sort() 함수 사용법 (0) | 2019.12.17 |
Javascript shift, unshift, push, pop 알아보기 (0) | 2019.12.13 |
Javascript 배열 안에 특정 원소의 포함 유무 확인방법 (0) | 2019.12.06 |
자바스크립트(Javascript) 진수변환 방법 (2진수, 8진수, 10진수, 16진수) (0) | 2019.11.27 |
Comments