JavaScript 익히기 #16 얕은 복사 && 깊은 복사

Sunki-Kim·2022년 10월 20일
0

JavaScript 익히기

목록 보기
17/23

객체를 프로퍼티 값으로 갖는 객체의 경우 얕은 복사는 한단계 까지만 복사하는 것을 말한다.
깊은 복사는 객체에 중첩되어 있는 객체까지 모두 복사하는것을 말한다.

// 얕은 복사 (Shallow Copy)

const user = {
    name: 'Sunki',
    age: 92,
    emails: ['skdding3@gmail.com']
}

// const copyUser = Object.assign({}, user)

const copyUser = {...user} // 전개연산자 Shallow Copy
console.log(copyUser === user)

user.age = 22

user.emails.push('skdding2@naver.com')
console.log(user.emails === copyUser.emails)

console.log('user', user)
console.log('copyUser', copyUser)

// 표면적인 복사처리를 적용한다.
// 깊은 복사 (Deep Copy)

const v = 1;
const c1 = v;
console.log(c1 === v); true

얕은 복사와 깊은 복사로 생성된 객체는 원본과는 다른 객체다.
즉 원본과 복사본은 참조 값이 다른 별개의 객체다.

얕은 복사는 객체에 중첩되어 있는 객체의 경우 참조 값을 복사하고 깊은 복사는 객체에 중첩되어 있는 객체까지 모두 복사해서 원시값처럼 완전한 복사본을 만든다는 차이가 존재한다.

profile
당신에게 가치있는 Developer가 되고자

0개의 댓글