728x90
두 함수 모두 객체에서 특정 key 값이 있는지를 확인할 수 있다.


위 처럼 객체가 해당 키 값을 가지고 있으면 true를 반환해 준다.
심지어 null 값이나 객체를 넣어도 오류 없이 false를 반환해 준다. (예외 처리 안해도 된다! 네이스!!)
그러면.. 두 함수 모두 기능이 똑같으니까 입맛대로 쓰면 될까요..?
노오옵!! 앞으로는 hasOwn를 쓰도록!
hasOwn이 hasOwnProperty의 상위호환이기 때문이다.
hasOwnProperty가 문제가 있을 때가 있다.
1. Object.create(null) 로 생성 시에 접근할 수 없다.

2. 객체 내에 선언 시에 덮어쓸 수 없다.


개인적으로 hasOwnProperty를 사용할 때,
오류가 나는 두 경우를 직접 만나지는 못해서 굳이..? 라는 생각도 있지만,
참고 링크 상단에 보이듯
hasOwn() 은 hasOwnProperty()를 대체하는것을 목표로 했다고 한다.
그렇다면.. 사용해 주는 방향으로 버릇을 바꾸는게 좋을 것 같다.
참고 : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwn
728x90
'개발 지식' 카테고리의 다른 글
Set를 araboja (feat: javascript 배열 중복 아이템 제거하기) (0) | 2024.06.27 |
---|---|
터미널에서 bat을 통한 쾌적한 파일보기 (bat 설치부터 실행까지) (1) | 2024.06.14 |
gitignore 파일 커밋, 적용시키기 (0) | 2024.06.10 |
[nvm] 프로젝트별 node 버전 관리하기(with .nvmrc) (0) | 2024.05.24 |
[Jenkins] ERROR: Step ‘Git Publisher’ failed: Tag " " already exists (1) | 2024.05.22 |