자바스크립트/자바스크립트란?

불변 객체를 만드는 방법

위르겐 2022. 7. 19. 15:34

 

 

이전 글에서

얕은복사와 깊은복사에 대해

간략하게 알아봤는데

 

이번엔 불변 객체를 만드는 법에 대해서 알아보자

 

let a = { name: 'ryu', hobbies: ['football', 'piano']}

a.name = 'kim'

console.log(a) // let a = { name: 'kim', hobbies: ['football', 'piano']}

 

 

a라는 객체가 있는데

이름을 kim으로 바꿔준 후 

다시 a를 출력하면

당연하게도

kim이라는 name을 가지고있는 a객체를 반환한다.

 

 

하지만 

 

let a = { name: 'ryu', hobbies: ['football', 'piano']}

Object.freeze(a)
a.name = 'kim'

console.log(a) // let a = { name: 'ryu', hobbies: ['football', 'piano']}

 

Object.freeze함수를 이용하여 객체를 얼려주면

그 요소를 변경시킬 수 없다.

 

또한

 

let a = { name: 'ryu', hobbies: ['football', 'piano']}

Object.freeze(a.hobbies)

a.hobbies[2] = 'running'

console.log(a) //  { name: 'ryu', hobbies: ['football', 'piano']}

 

 

hobbies를 따로 프리징해주면

hobbies를 추가해도 

변하지 않는 불변성을 유지할 수 있다.

반응형