자바스크립트/자바스크립트란?
불변 객체를 만드는 방법
위르겐
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를 추가해도
변하지 않는 불변성을 유지할 수 있다.
반응형