2022
JavaScript 불변 객체 만드는 방법 본문
const
이 중 const 키워드를 사용하면 상수 변수 선언을 할 수 있다. 그리고 const는 상수로 취급되기 때문에 다음과 같이 값을 변경하려고 시도하면 에러가 발생한다.
const str = 'hello';
str = 'hey'; // Uncaught TypeError: Assignment to constant variable.
Object.freeze()
자바스크립트에서 제공하는 Object.freeze()는 MDN 문서에서 "객체를 동결하기 위한 메서드"라고 설명하고 있다.
즉, Object.freeze를 사용하면 동결된 객체를 만들 수 있고, 동결된 객체에는 속성을 추가하거나 제거하는 동작이 불가능한 Immutable한 객체를 만들 수 있는 것이다. 또한 Object.freeze로 동결된 객체는 프로토타입의 변경도 막아준다.
const + Object.freeze()
위에서 살펴본 것과 같이 객체를 const로 선언할 경우 선언한 변수의 재할당은 허용하지 않지만 객체의 속성을 변경하는 것을 가능했다. 그리고 Object.freeze는 객체의 속성을 변경하는 것은 불가능하지만 재할당은 가능하다.
우리가 원하는 Immutable한 객체를 생성하기 위해서는 const와 Object.freeze를 함께 사용하면 된다.
'JavaScript' 카테고리의 다른 글
react S.A.실습 과제 (0) | 2022.05.20 |
---|---|
호이스팅과 TDZ (0) | 2022.05.20 |
얕은 복사와 깊은 복사 (0) | 2022.05.20 |
JavaScript 자료형 (0) | 2022.05.20 |
JavaScript 특성 (0) | 2022.05.20 |
Comments