-
[Object] 객체에 특정 키가 있는지 확인 hasOwnProperty vs injavascript 2020. 2. 20. 00:23
메소드 맨날 까먹어서 쓸 때마다
어? 있었던 것 같은데 뭔지는 모르겠다. (검색)
무한 반복
다들 이렇게 사는 거지
hasOwnProperty()
obj.hasOwnProperty(prop)
문법 간단~
obj => 객체 / prop => 확인하고자 하는 속성
있으면 true, 없으면 false를 반환
되게 간단한 메서드인데,, 설명을 읽다 보니까
"이 메소드는 객체가 특정 프로퍼티를 자기만의 직접적인 프로퍼티로서 소유하고 있는지를 판단하는데 사용된다.
in연산과는 다르게, 이 메소드는 객체의 프로토타입 체인을 확인하지는 않는다."이 부분을 보고 in이랑 차이점을 살펴봤다.
in operator
속성 in 객체명
너무 간단해서 땀 난다.
프로토타입 체인을 알면
hasOwnProperty는 프로토타입 체인까지는 체크 안하고,
in은 프로토타입 체인까지 확인 한다는 소리
(^^,, 몬 소리야)
프로토타입 체인을 모르면
hasOwnProperty 눈에 보이는 곳까지만 체크하고,
in 눈에 바로 보이진 않지만 가지고 있기는 한 부분까지 체크한다는 소리
아직까지는 특별히 상속받는 부모객체까지 확인해야 경우가 없었기 때문에
그냥 hasOwnProperty만 써도 무난할 것 같다.
+ 배열도 객체라 두 개 다 사용 가능하다.
Reference:
[Object.prototype.hasOwnProperty - MDN]
http://adripofjavascript.com/blog/drips/the-uses-of-in-vs-hasownproperty.html
'javascript' 카테고리의 다른 글
NPM과 Package.json (0) 2019.12.25 자바스크립트 런타임 Node.js (0) 2019.12.23