// JavaScript in operator.
if ('key' in myObj) {
...
}
// hasOwnProperty
if (Object.prototype.hasOwnProperty.call(myObj, "key")) {
...
}
in
: 해당 객체의 prototype chain까지 포함한 모든 객체 키를 조회한다.hasOwnProperty
: 해당 객체가 해당 키를 직접적으로 가질 때만 true를 반환한다.별다른 이유가 없다면 hasOwnProperty를 사용하자!
해당 객체의 hasOwnProperty가 재선언되었을 수도 있기 때문에 Object.prototype.hasOwnProperty.call()을 통해 Object의 메서드를 빌려서 사용하자!