Object#hasOwnProperty

プロトタイプオブジェクトを辿らずにそのオブジェクトがプロパティを持っているか調べれます。これはオブジェクトのメソッドですが、対象のオブジェクトがhasOwnPropertyを持っている可能性などが可能性は低いですがある為メソッドでの呼び出しは良くありません。以下のようにcallから呼び出すとほぼ確実にメソッドのhasOwnPropertyが呼び出せてより安全です。

Object.prototype.hasOwnProperty.call({foo: 'foo'}, 'foo');
// true
({foo: 'foo', hasOwnProperty: () => false}).hasOwnProperty('foo');
// false

in

プロパティ名 in オブジェクトでも調べることができます。こちらはプロトタイプを遡り調べることができます。

'hasOwnProperty' in Object
// true

もちろん、ただのプロパティの有無も調べられますよ。

'foo' in {foo: 'foo'}
// true

JavaScript で飯食べたい歴約 5 年、 純( nju33 ) によるノートサイトです。

このサイトではドリンク代や奨学金返済の為、広告などを貼らせて頂いてますがご了承ください。

Change Log