본문 바로가기
JavaScript

JavaScript, 불변성과 불변객체를 만드는 방법

by nacjji 2022. 11. 18.
불변성이란?

- 자바스크립트에서 불변성(Immutability)이란 데이터는 한번 생성되고나면 그 뒤에는 변할수 없다는 것을 의미한다.

- 기본(원시)형 데이터는 불변 데이터로 불리는데, 이는 컴퓨터 내 메모리 영역 내에서 값이 변하지 않는다는 것을 의미한다.

- 변수에 값을 할당할 때 완전히 새로운 값이 만들어져 할당된다. 

 

불변 객체를 만드는 방법 Object.freeze()

- 자바스크립트의 내장 메소드인 Object.freeze() 는 객체를 동결하기 위한, 즉 값을 변경하지 못하게 만드는 메소드이다. 

const immu = {
    data : 'immutable data'
}

Object.freeze(immu)
immu.data = 'make it mutable'

console.log(immu.data)
→ immutable data

- immu.data 에 'make it mutable' 로 값을 변경하게 지시했지만 Object.freeze(immu) 로 인해 값을 변경할 수 없는 형태로 만들었다. 

- 객체를 생성할 때 const 로 생성했기 때문에 객체의 재할당 또한 불가능하다.