[javaScript] 객체에 프로퍼티 추가를 금지해보자

rejoelve·2018년 12월 12일
2

계기

테스트 코드를 작성하다 버그를 발견했습니다.

코드를 재사용하려고 testUser를 복사한 뒤에 필요한 프로퍼티만 수정해서 사용하고 있었는데요.

이미 눈치채신 분도 있겠지만 userName, username 두 개의 프로퍼티가 생겨버렸습니다
진작 확인해서 다행이라는 생각보다는 공포감이 몰려오더라구요 허허...

"앞으로는 조심해야지! ㅎㅎㅎ" 보다는 이런 실수가 다시 생겨도 막아줄 안전장치를 마련하는게 좋은 자세일 겁니다.

구글링을 해보니 Object.preventExtensions() 라는 게 있더라구요.

기존에 있던 프로퍼티 a 는 수정되었지만 b는 추가되지 않았습니다.

엄격 모드를 사용하면 가차없이 에러가 발생합니다.

Object.preventExtensions()의 리턴값은 paramater로 전달된 객체의 레퍼런스 값이기 때문에

이런식으로 '얕은 복사'를 하면서 프로퍼티 추가를 '금지'할 수 있습니다.

결론

본인을 믿기보다는 실수했을 때 가차없이 뺨따구를 걷어올려줄 감시자를 쓰는 것이 바람직 할 것 입니다.

profile
I DON'T KNOW JS ㅜㅜ

0개의 댓글