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 オブジェクトのすべてのシンボルプロパティのキーを取得しています。ab は文字列プロパティであるため、結果に含まれません。

注意点

編集
  • 抽象操作: GetOwnPropertyKeys は、ECMAScript仕様内での抽象操作であり、直接的にJavaScriptコードから呼び出すことはできません。
  • 独自プロパティ: GetOwnPropertyKeys は、指定されたオブジェクトの独自プロパティのみを対象とします。継承されたプロパティは含まれません。
  • タイプ: type パラメータは、"string" または "symbol" のいずれかを指定します。

脚註

編集
  1. ^ これは、オブジェクトの独自プロパティのキーを取得するために使用されます。

外部リンク

編集