typeof 演算子などで

typeof foo.bar; // 'object'

とした場合、下記のようにプロトタイプチェーン上のオブジェクトにまで反応してしまう。

typeof foo.constructor; // 'function'

そのため、hasOwnPropertyを利用する。

hasOwnProperty(foo.bar); // true