chart.js의 내부 데이터를 수정하려는 도중 다음과 같은 에러가 발생했다.
오브젝트에 프로퍼티를 추가할 수 없다는 에러이다.
이러한 에러가 뜨는 이유는
Object.preventExtensions()
라는 오브젝트 static 함수를 사용했기 때문이다.
콘솔창에서 간단하게 테스를 해보면
이렇게 에러가 난다.
동일한 기능을 하는 함수로는 Object.seal()
, Object.freeze()
가 있다.
관련 MDN문서는 여기에 있다.
Reflect 객체를 이용하여 확장 가능한지 확인하여보면 false
를 반환한다.
아무리 찾아도 다시 오브젝트를 Extensible 하게 해주는 방법은 없었다.
결국 깊은 복사를 해서 비슷한 객체를 새로 만들었다.
JSON.parse(JSON.stringify(Object))
를 이용했다.