JavaScript/Object/getOwnPropertyNames
< JavaScript | Object
Object.getOwnPropertyNames()
は、指定されたオブジェクトのすべての独自プロパティの名前を配列として返すメソッドです。このメソッドは、列挙可能かどうかに関係なく、すべての独自プロパティの名前を含む配列を返します[1]。
構文
編集Object.getOwnPropertyNames(obj)
obj
: プロパティ名を取得する対象のオブジェクト。
例
編集すべての独自プロパティ名を取得するプログラム
編集以下のプログラムは、Object.getOwnPropertyNames()
を使用してすべての独自プロパティ名を取得します。
const obj = { a: 1, b: 2 }; const propertyNames = Object.getOwnPropertyNames(obj); console.log(propertyNames); // ['a', 'b']
このプログラムでは、Object.getOwnPropertyNames()
を使用して obj
オブジェクトのすべての独自プロパティ名を取得しています。
列挙不可のプロパティ名も取得するプログラム
編集以下のプログラムは、Object.getOwnPropertyNames()
を使用して列挙不可のプロパティ名も取得します。
const obj = {}; Object.defineProperty(obj, 'a', { value: 1, enumerable: true }); Object.defineProperty(obj, 'b', { value: 2, enumerable: false }); const propertyNames = Object.getOwnPropertyNames(obj); console.log(propertyNames); // ['a', 'b']
このプログラムでは、Object.getOwnPropertyNames()
を使用して obj
オブジェクトのすべての独自プロパティ名を取得しています。b
プロパティは列挙不可ですが、Object.getOwnPropertyNames()
は列挙不可のプロパティも含めて返します。
注意点
編集- 独自プロパティ:
Object.getOwnPropertyNames()
は、指定されたオブジェクトの独自プロパティのみを対象とします。継承されたプロパティは含まれません。 - 列挙不可のプロパティ: 列挙不可のプロパティも含めて返します。
- シンボルプロパティ: シンボルプロパティの名前は含まれません。シンボルプロパティの名前を取得するには、
Object.getOwnPropertySymbols()
を使用します。
脚註
編集- ^ これは、オブジェクトのすべての独自プロパティの名前を取得するために使用されます。
外部リンク
編集