자바스크립트 오브젝트에 쓰기가 금지되어 있을 때 해결 방법

Jake Seo·2020년 4월 29일
2

anything-about-nodejs

목록 보기
4/4

문제

chart.js의 내부 데이터를 수정하려는 도중 다음과 같은 에러가 발생했다.

오브젝트에 프로퍼티를 추가할 수 없다는 에러이다.

이러한 에러가 뜨는 이유는

Object.preventExtensions() 라는 오브젝트 static 함수를 사용했기 때문이다.

콘솔창에서 간단하게 테스를 해보면

이렇게 에러가 난다.

동일한 기능을 하는 함수로는 Object.seal(), Object.freeze()가 있다.

관련 MDN문서는 여기에 있다.

Reflect 객체를 이용하여 확장 가능한지 확인하여보면 false를 반환한다.

해결

아무리 찾아도 다시 오브젝트를 Extensible 하게 해주는 방법은 없었다.

결국 깊은 복사를 해서 비슷한 객체를 새로 만들었다.

JSON.parse(JSON.stringify(Object))를 이용했다.

profile
풀스택 웹개발자로 일하고 있는 Jake Seo입니다. 주로 Jake Seo라는 닉네임을 많이 씁니다. 프론트엔드: Javascript, React 백엔드: Spring Framework에 관심이 있습니다.

0개의 댓글