JavaScript/Object/GetOwnPropertyKeys
< JavaScript | Object
GetOwnPropertyKeys
は、ECMAScript仕様内での抽象操作であり、指定されたオブジェクト O
のすべての独自プロパティのキーを取得します。この操作は、type
パラメータに基づいて、文字列プロパティまたはシンボルプロパティのキーを返します[1]。
構文
編集GetOwnPropertyKeys(O, type)
O
: プロパティキーを取得する対象のオブジェクト。type
: 取得するプロパティキーのタイプ("string"
または"symbol"
)。
例
編集文字列プロパティのキーを取得するプログラム
編集以下のプログラムは、GetOwnPropertyKeys
抽象操作を使用して文字列プロパティのキーを取得します。
const obj = { a: 1, b: 2, [Symbol('c')]: 3 }; // このコードは、ECMAScript仕様内での抽象操作を模倣しています。 const stringKeys = Object.getOwnPropertyNames(obj); console.log(stringKeys); // ['a', 'b']
このプログラムでは、Object.getOwnPropertyNames()
を使用して obj
オブジェクトのすべての文字列プロパティのキーを取得しています。Symbol('c')
はシンボルプロパティであるため、結果に含まれません。
シンボルプロパティのキーを取得するプログラム
編集以下のプログラムは、GetOwnPropertyKeys
抽象操作を使用してシンボルプロパティのキーを取得します。
const obj = { a: 1, b: 2, [Symbol('c')]: 3 }; // このコードは、ECMAScript仕様内での抽象操作を模倣しています。 const symbolKeys = Object.getOwnPropertySymbols(obj); console.log(symbolKeys); // [Symbol(c)]
このプログラムでは、Object.getOwnPropertySymbols()
を使用して obj
オブジェクトのすべてのシンボルプロパティのキーを取得しています。a
と b
は文字列プロパティであるため、結果に含まれません。
注意点
編集- 抽象操作:
GetOwnPropertyKeys
は、ECMAScript仕様内での抽象操作であり、直接的にJavaScriptコードから呼び出すことはできません。 - 独自プロパティ:
GetOwnPropertyKeys
は、指定されたオブジェクトの独自プロパティのみを対象とします。継承されたプロパティは含まれません。 - タイプ:
type
パラメータは、"string"
または"symbol"
のいずれかを指定します。
脚註
編集- ^ これは、オブジェクトの独自プロパティのキーを取得するために使用されます。