【JavaScript ECMAScript】Object::Object.prototype.propertyIsEnumerableインスタンスメソッドの使い方
Object.prototype.propertyIsEnumerable()インスタンスメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
Object.prototype.propertyIsEnumerable()メソッドは、指定されたプロパティがオブジェクト自身のプロパティであり、かつ列挙可能(enumerable)であるかどうかを確認するメソッドです。JavaScriptのオブジェクトは、直接自身のプロパティを持つだけでなく、プロトタイプチェーンを通じて継承されたプロパティも利用できます。このメソッドの主な用途は、対象のプロパティがそのオブジェクト自身の直接のプロパティであり、かつfor...inループやObject.keys()などの操作で列挙されるべきプロパティであるかを判別することです。
具体的には、引数として確認したいプロパティ名を文字列で渡します。そのプロパティがオブジェクト自身に存在し、かつそのプロパティの属性が「列挙可能」に設定されている場合にtrueを返します。もしプロパティが継承されたものである場合や、直接存在するが列挙不可に設定されている場合にはfalseを返します。このメソッドは、オブジェクトのプロパティを処理する際に、意図しない継承プロパティの操作を防いだり、特定のプロパティだけを公開・処理したい場合など、プロパティの可視性やアクセス制御を正確に行うために利用されます。これにより、プログラムの堅牢性と予測可能性を高めることができます。
公式リファレンス: Object.prototype.propertyIsEnumerable()
構文(syntax)
1const myObject = { 2 propertyKey: 'propertyValue' 3}; 4myObject.propertyIsEnumerable('propertyKey');
引数(parameters)
property
- property: string: 列挙可能かどうかをチェックしたいプロパティの名前を表す文字列
戻り値(return)
boolean
指定されたプロパティが、オブジェクトの直接のプロパティであり、かつ列挙可能である場合に true を返します。それ以外の場合は false を返します。