ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Object] 객체에 특정 키가 있는지 확인 hasOwnProperty vs in
    javascript 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]

    [in operator - 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
Designed by Tistory.