깊은 복사를 할때 점 세개 (es6에서 추가된)를 많이 쓴다
const a = {... b} 뭐 이런식으로...
그러나 b안에 내부값이 더 있었다면.. 즉 b안에 c 배열 안에 d가 있었다면!!!
d값은 깊은 복사가 안된다 ㅠㅠ
그래서 lodash에서 제공하는 오픈소스 clonedeep을 사용해서 깊은 복사를 한다.
const clonedeep = require("lodash.clonedeep")
const original = {
a: 1,
b: {
c: 2,
},
d: () => {
console.log("javascript")
},
}
const new = clonedeep(original)
original.a = 1000
original.b.c = 2000
console.log(new.a) // 1
console.log(new.b.c) // 2
console.log(new.d()) // 'javascript'
불편하기도 편하기도 한 자바스크립트.
'■ Web개발 > Javascript' 카테고리의 다른 글
map으로 fetch하기. await async (1) | 2023.12.04 |
---|---|
concat과 push의 차이점 (0) | 2021.09.09 |
javascript find, filter 차이 (0) | 2021.08.06 |
네자릿수 이상 숫자에 콤마 찍기(세자릿수 콤마) Javascript (0) | 2021.07.20 |
math.round를 통해 소수점 표현하기 (0) | 2021.06.25 |