티스토리 뷰
개요
Reference 와 copy 의 차이를 들여다보자
내용
|
문자열, 숫자, 불리언은 copy 된다. - 따라서 하나의 값을 바꾼다고, 다른게 따라 바뀌지 않는다.
|
|
하지만 배열은 다르다. (type 은 object 이다.) 각각의 item 값을 바꿨더니 둘 모두 값이 바뀌었다. - Dog 와 Tiger
|
|
배열을 reference 하지 않고 copy 하는 방법은 다양하다. - 개인적으로는 … 가 마음에 든다.
|
|
이번에는 구조체를 보자. 배열과 마찬가지이다. 둘은 연결되어 있다. reference
|
|
구조체도 마찬가지로 copy 할 수 있는 방법이 있다. - 역시나 … 가 가장 마음에 든다.
|
|
그런데 주의할 게 있다. copy 가 1단계만 된다는 것이다. 그 속에 중첩된 (nested) 배열이나 구조체는 copy 되지 않고 reference 된다. → lodash 같은 라이브러리는 cloneDeep 을 제공하지만, 사용에 주의해야 한다. → 아래에 보면 BIGBOY, littleboy 는 reference 되어 적용된게 보인다.
|
|
그냥 문자열로 만들었다가 다시 파싱하여 구조체로 집어넣는 편법도 있다. |
참고. let vs var vs const
참고링크: https://goo.gl/DY5ezV
var |
- 포함하는 function 레벨까지 scope 가 늘어난다. - function-scoped hoisting - 변수 재선언도 가능하다. - 상황에 따라 'use string' 를 사용해야 한다. |
완전 구리다 |
let |
- block-scoped hoisting - 변수 재선언 불가 |
ES2015 부터 생김 |
const |
- block-scoped hoisting - 변수 재선언 불가 - 변수 재할당 불가 |
ES2015 부터 생김 |
'javascript30' 카테고리의 다른 글
16 - Mouse Move Shadow (0) | 2019.03.26 |
---|---|
15 - Local Storage (0) | 2019.03.26 |
13 - Slide in on Scroll (0) | 2019.03.18 |
12 - Key Sequence Detection (0) | 2019.03.15 |
11 - Custom Video Player (0) | 2019.03.14 |
![잡학툰 뱃지](https://tistory1.daumcdn.net/tistory/2908812/skin/images/badge.png)
- Total
- Today
- Yesterday
- 영화
- clean agile
- 엉클 밥
- 잡학툰
- websocket
- 2023
- 클린 아키텍처
- 독서
- 노션
- 독서후기
- notion
- folklore
- solid
- Bug
- API
- 클린 애자일
- go
- 2024년
- OpenAI
- ChatGPT
- postgres
- 티스토리챌린지
- intellij
- Gin
- agile
- bun
- strange
- 오블완
- golang
- 인텔리제이
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |