Shallow Copy vs Deep Copy feat.Spread Operator {...}

source: https://www.freecodecamp.org/news/copying-stuff-in-javascript-how-to-differentiate-between-deep-and-shallow-copies-b6d8c1ef09cd/

const a = {
    en: 'Bye',
    de: 'Tschüss'
}

let b = {... a};

b.de = 'Ciao'

console.log(a)
console.log(b)

const c = {...b, ...a} //Spread Operator 뿌리는 순서가 중요

console.log(c)


//Spread Operator Shallow Copy vs Deep Copy

Spread Operator는 Deep Copy를 만들어준다 하지만 데이터가 nested 되어 있을 경우에는 nested data는 shallow copy가 된다.

따라서 nested 되어있는 부분도 deep copy 하려면

{...a, b: {...b.foods}}이런식으로 또 한번의 Spread Operator를 행해 주어야 한다

source:https://stackoverflow.com/questions/184710/what-is-the-difference-between-a-deep-copy-and-a-shallow-copy

좋은 웹페이지 즐겨찾기