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"のいずれかを指定します。
脚註
編集- ^ これは、オブジェクトの独自プロパティのキーを取得するために使用されます。