【JavaScript ECMAScript】Object::Object.prototype.hasOwnPropertyインスタンスメソッドの使い方
Object.prototype.hasOwnProperty()インスタンスメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
Object.prototype.hasOwnProperty()メソッドは、あるオブジェクトが特定のプロパティを「自身のプロパティ」として持っているかどうかを検査するメソッドです。このメソッドは、引数として検証したいプロパティの名前を文字列で受け取ります。
指定されたプロパティがオブジェクト自身に直接定義されている場合、このメソッドは真偽値のtrueを返します。しかし、もしそのプロパティがオブジェクトのプロトタイプチェーン上、つまり親オブジェクトやそのさらに親オブジェクトから継承されたものであった場合、またはプロパティが全く存在しない場合はfalseを返します。
このメソッドの主な目的は、オブジェクトが直接所有しているプロパティと、継承によって利用可能になっているプロパティを明確に区別することです。たとえば、for...inループを使ってオブジェクトのプロパティを反復処理する際に、意図せず継承されたプロパティまで処理してしまうことを防ぐために非常に役立ちます。これにより、予期せぬ動作を避け、コードの信頼性を高めることができます。オブジェクトが本当にそのプロパティを所有しているかを確認したい場合に、このhasOwnProperty()メソッドは安全で正確な判断基準を提供します。
公式リファレンス: Object.prototype.hasOwnProperty()
構文(syntax)
1const obj = { 2 propertyA: 'valueA' 3}; 4 5obj.hasOwnProperty('propertyA'); 6obj.hasOwnProperty('propertyB');
引数(parameters)
prop
- prop: string | symbol: プロパティの名前を指定する文字列またはシンボル
戻り値(return)
Boolean
指定されたプロパティがオブジェクト自身に直接定義されている場合に true を、継承されている場合や存在しない場合に false を返します。