【Node.js24.x】Object::hasOwn()メソッドの使い方
hasOwnメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
hasOwnメソッドは、指定されたオブジェクトが、特定のプロパティを自身のプロパティとして持っているかを確認するメソッドです。これは、オブジェクトがプロトタイプチェーンから継承したプロパティではなく、直接そのオブジェクト自身が定義しているプロパティであるかどうかを厳密にチェックするために利用されます。
このメソッドは、Object.hasOwn(obj, propName)のように使用します。ここでobjは確認したいオブジェクト、propNameは確認対象のプロパティの名前を文字列またはSymbolで指定します。もしobjがpropNameという名前の自身のプロパティを持っていればtrueを返し、そうでなければfalseを返します。
Object.prototype.hasOwnProperty()メソッドと似ていますが、Object.hasOwn()はより堅牢な方法を提供します。例えば、オブジェクトがhasOwnPropertyという名前のプロパティを自身で持っている場合や、Object.create(null)で作成されたプロトタイプを持たないオブジェクトに対しては、obj.hasOwnProperty(propName)のような呼び出しが予期せぬ結果を引き起こしたり、エラーが発生したりする可能性があります。Object.hasOwn()は、これらの潜在的な問題を回避し、常に安全かつ正確にプロパティの存在を確認できます。システム開発において、オブジェクトのプロパティを安全に扱うための重要なツールとなります。
構文(syntax)
1const myObject = { 2 propertyA: 123 3}; 4 5// myObject が 'propertyA' というプロパティを直接持っているか確認 6const hasPropertyA = Object.hasOwn(myObject, 'propertyA'); // 結果は true 7 8// myObject が 'propertyB' というプロパティを直接持っているか確認 9const hasPropertyB = Object.hasOwn(myObject, 'propertyB'); // 結果は false
引数(parameters)
obj, prop
- obj: object: プロパティの存在を確認したいオブジェクト
- prop: string | symbol: 存在を確認したいプロパティのキー (文字列またはシンボル)
戻り値(return)
boolean
指定されたプロパティがオブジェクト自身のプロパティである場合は true を、そうでない場合は false を返します。