JavaScript/JavaScript기초
[Javascript] 배열과 객체의 Copy
박남수
2021. 8. 27. 11:32
배열과 객체의 Copy
하나의 배열 또는 객체를 다른 변수에 copy 하고 싶을 때 변수에 그냥 할당할 경우 아래와 같은 상황이 발생
let obj = {name:"hong"}
let obj2 = obj
let arr = ['a','b','c']
let arr2 = arr
obj.name = 'park'
arr[0] = 'd'
console.log(obj2)
console.log(arr2)
이러한 현상이 발생하는 이유는 객체와 배열의 데이터만 복사한게 아니라 객체와 배열 그 자체를 copy한것이기 때문에 서로 영향을 받는것임.
데이터만 copy하고 싶을경우 객체는 {...변수명} , 배열은 [...변수명] 을 통해 변수 그 자체가 아닌 데이터만 copy해올 수 있음
let obj = {name:"hong"}
let obj2 = {...obj} //obj의 데이터만 복사
let arr = ['a','b','c']
let arr2 = [...arr] // arr의 데이터만 복사
obj.name = 'park'
arr[0] = 'd'
console.log(obj2)
console.log(arr2)