반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- kotlin
- onsenui
- Vuetify
- 프로세스 방지
- v-select
- vuetifyjs
- c#
- f035d
- bucket cors
- nodejs
- 동일 프로그램
- 동일 프로세스
- NUXT
- MySQL
- Electron
- naver storage bucket error
- vuejs
- xlsx
- sequelize
- electron-nuxt
- Vue
- CSS
- sort
- naver storage
- v-text-field height
- Android
- JavaScript
- onsen-ui
- bucket max-key
- error
Archives
- Today
- Total
앙큼한 개발기록
[Error] An object could not be cloned 오류 본문
javascript 에서 Object를 복사하는 방법은 여러가지가 있다.
1. lodash
2. json
3. separator
...
위에 언급한거 외에도 다른 라이브러리를 사용해도 된다.
object를 복사해서 사용하는 이유는 Object 가 참조 하고 있는 주소 값때문에
단순하게 let이나 var로 선언해서 사용할 경우 해당 참조값 모두가 바뀔수 있기 때문에
동일한 데이터를 가지고 가공해서 사용하고 싶을 때 많이 사용 된다.
나는 위에 중에서 json 방식을 공통 함수로 만들어서 사용 하고 있다.
내가 사용한 함수는 다음과 같다.
cloneObject(value) {
return JSON.parse(JSON.stringify(value))
}
심플하고, 라이브러리 안써도 되고, 함수로 써서 알기 쉽고 등등 여러가지 장점이 있다.
근데 문제는 json.stringify 가 되지 않는 object들이 존재한다.
object 안에 함수가 들어가 있거나, Class type Object 이거나 javascript의 기본 타입 형이 아닌 경우 (ex. Promise)
나 같은 경우 비동기 함수에서 전달받은 데이터를 복사해 가공하여 화면에 뿌려주기 위해 Object를 복사해서 사용했는데
async/await 에서 await을 걸지 않아서 promise 객체를 전달 받아 에러가 터졌다.
이 에러가 무서운게 어디서 터졌는지 찾기가 참 애매 하다는 건데
실행중에 에러가 발생했다면 unit test 를 꼭 해보길 바란다.
끝.
'개발 > javascript' 카테고리의 다른 글
Uncaught (in promise) TypeError: Cannot read properties of undefined 오류 (0) | 2022.12.17 |
---|---|
[Error] Cannot destructure property 'name' of 'undefined' as it is undefined. (0) | 2022.12.17 |
[sequelize] sequelize data 다이어트 방법 (0) | 2022.12.12 |
[vue-select] 내용 정리 (0) | 2022.12.05 |
[javascript] 배열 묶기 (0) | 2022.06.09 |
Comments