TIL

2021.01.28

joy_lee 2021. 1. 28. 21:07

javascript에서의 Array 복제

 

참조형 데이터인 Array는 값이 담긴 주솟값들의 묶음을 참조하는 형식이다

const Arr1 = ['a', 'b', 'c', 'd']

로 생성한 경우의 메모리

주소 1002 ... 5001 5002 5003 5004 5005 ...
데이터 이름 : Arr1
값 : @5001
... @7100~ 'a' 'b' 'c' 'd' ...
주소 ... 7100 7101 7102 7103 7104 7105 ...
데이터 ... 이름: 0
값: @5002
이름: 1
값: @5003
이름: 2
값: @5004
이름: 3
값: @5005
  이름: Arr2
값: @5001
...

 

이 때 const Arr2 = Arr1 로 복제하고나면 @1002만 복사한다(@7105)

그래서 Arr2를 통해 접근한 Arr2[2]를 변경하면 Arr1[2]도 변경된다.

 

위의 복사를 얕은 복사라고 한다.

 

 

깊은 복사

 

배열의 복사

Array.prototype.slice()를 사용해 새로운 배열을 반환한다.

 

참고) www.inflearn.com/course/%ED%95%B5%EC%8B%AC%EA%B0%9C%EB%85%90-javascript-flow#

       Javascript 핵심 개념 알아보기 -JS Flow

참고) bbaktaeho-95.tistory.com/37

       객체의 깊은 복사, JSON으로 복사도 나와있음

'TIL' 카테고리의 다른 글

2021.02.17  (0) 2021.03.04
2021.02.16  (0) 2021.03.04
2021.01.25  (0) 2021.01.25
2021.01.21  (0) 2021.01.21
2021.01.20  (0) 2021.01.20