hasOwnProperty
インスタンス自身に指定した名前のプロパティが存在するか判定する。
Object.prototype.hasOwnProperty(name) が正しい定義。
つまり、Object から継承されるインスタンスメソッドになる。
一方、Object をあえて継承しないようなクラスやインスタンスがあるため、厳密に使うためには、以下のように call で呼び出す必要がある。
Object.prototype.hasOwnProperty.call(obj, name)