본문 바로가기

■ Web개발/Javascript

javascript 깊은 복사

깊은 복사를 할때 점 세개 (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'

불편하기도 편하기도 한 자바스크립트.