Movatterモバイル変換


[0]ホーム

URL:


MDN Web Docs

このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

Reflect

BaselineWidely available

Reflect は、JavaScript 操作を受け付けるためのメソッドを提供する組み込みオブジェクトです。メソッドはプロキシーハンドラーのメソッドと同じです。Reflect は関数オブジェクトではありませんので、構築することはできません。

解説

他の多くのグローバルオブジェクトとは異なり、Reflect はコンストラクターではありません。new 演算子で使用したり、Reflect オブジェクトを関数として呼び出したりすることはできません。Reflect のすべてのプロパティとメソッドは (Math オブジェクトと同様に) 静的です。

Reflect オブジェクトはプロキシーハンドラーのメソッドと同じ名前をもつ、下記の関数を提供します。

これらのメソッドの一部はObject の対応するメソッドとも同じですが、これらの間にはいくらか微妙な違いがあります。

静的メソッド

Reflect.apply(target,thisArgument,argumentsList)

target 関数を、引数argumentsList で指定された引数で呼び出します。Function.prototype.apply() も参照してください。

Reflect.construct(target,argumentsList[,newTarget])

関数としてのnew 演算子です。new target(...argumentsList) を呼び出すのと等価です。別なプロトタイプを指定するためにオプションを指定することもできます。

Reflect.defineProperty(target,propertyKey,attributes)

Object.defineProperty() と同様です。返値は論理値で、プロパティが定義できた場合はtrue を返します。

Reflect.deleteProperty(target,propertyKey)

関数としてのdelete 演算子です。delete target[propertyKey] を呼び出すのと等価です。

Reflect.get(target,propertyKey[,receiver])

このプロパティの値を返します。オブジェクトからのプロパティの取得 (target[propertyKey]) を関数にしたようなものです。

Reflect.getOwnPropertyDescriptor(target,propertyKey)

Object.getOwnPropertyDescriptor() に似ています。指定したプロパティが存在する場合にプロパティ記述子を返し、存在しない場合はundefined を返します。

Reflect.getPrototypeOf(target)

Object.getPrototypeOf() と同じです。

Reflect.has(target, propertyKey)

論理値で、対象がそのプロパティを持っているかどうかを返します。固有の場合も継承の場合も含みます。in 演算子を関数にしたものです。

Reflect.isExtensible(target)

Object.isExtensible() と同じです。論理値を返し、true ならば対象が拡張可能です。

Reflect.ownKeys(target)

独自の (継承されているものではない) プロパティのキーをもつ文字列の配列を返します。

Reflect.preventExtensions(target)

Object.preventExtensions() に似ています。論理値を返し、true は更新に成功した場合です。

Reflect.set(target,propertyKey,value[,receiver])

値をプロパティに割り当てる関数です。更新に成功したらtrue となる論理値を返します。

Reflect.setPrototypeOf(target,prototype)

オブジェクトのプロトタイプを設定する関数です。論理値を返し、true ならば成功です。

オブジェクトが特定のプロパティを持っているかどうかを検出

js
const duck = {  name: "Maurice",  color: "white",  greeting: function () {    console.log(`Quaaaack! My name is ${this.name}`);  },};Reflect.has(duck, "color");// trueReflect.has(duck, "haircut");// false

オブジェクトが所有するキーの返却

js
Reflect.ownKeys(duck);// [ "name", "color", "greeting" ]

オブジェクトへの新しいプロパティの追加

js
Reflect.set(duck, "eyes", "black");// 成功した場合は "true" を返します。// "duck" には "eyes: 'black'" プロパティが設定されました。

仕様書

Specification
ECMAScript® 2026 Language Specification
# sec-reflect-object

ブラウザーの互換性

関連情報

  • Proxy グローバルオブジェクト
  • handler オブジェクト

Help improve MDN

Learn how to contribute.

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp