MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-dev-survey

概要

Reflect は、インターセプトが可能な JavaScript 操作に対するメソッドを提供するビルトインオブジェクトです。メソッドは proxy handlers のメソッドと同じです。Reflect は関数オブジェクトではありませんので、構築ができません。

説明

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

メソッド

Reflect オブジェクトは proxy handler methodsと同じ名前をもち、Objectのメソッドのいくつかと重複する静的な関数を提供します。:

Reflect.apply()
args引数によって指定される値をもつターゲット関数を呼び出します。Function.prototype.apply()も確かめて下さい。
Reflect.construct()
new オペレータnew target(...args)を呼び出すのと同等です。
Reflect.defineProperty()
Object.defineProperty()に似ています。Booleanを返します。
Reflect.deleteProperty()
delete オペレータdelete target[name]を呼び出すのと同等です。
Reflect.get()
プロパティの値を返す関数。
Reflect.getOwnPropertyDescriptor()
Object.getOwnPropertyDescriptor()に似ています。指定したプロパティが存在する場合にプロパティディスクリプタを返すか、存在しない場合には undefined を返します。
Reflect.getPrototypeOf()
Object.getPrototypeOf()と同じです。
Reflect.has()
in オペレータ 。 独自か継承したプロパティが存在するかどうかを示すbooleanを返します。
Reflect.isExtensible()
Object.isExtensible()と同じです。
Reflect.ownKeys()
独自の(継承されない)プロパティのキーをもつ文字列の配列を返します。
Reflect.preventExtensions()
Object.preventExtensions()に似ています。Booleanを返します。
Reflect.set()
値をプロパティに割り当てる関数。更新が成功したらtrueであるBooleanを返します。
Reflect.setPrototypeOf()
オブジェクトのプロトタイプを設定する関数。

仕様

仕様 状況 コメント
ECMAScript 2015 (6th Edition, ECMA-262)
Reflect の定義
標準 最初期の定義
ECMAScript 2017 Draft (ECMA-262)
Reflect の定義
ドラフト Reflect.enumerate を削除

ブラウザ実装状況

機能 Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
基本サポート 49 (有) 42 (42) 未サポート 未サポート 未サポート
機能 Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
基本サポート 49 49 42.0 (42) 未サポート 未サポート 未サポート

関連情報

ドキュメントのタグと貢献者

 このページの貢献者: imanabu, yyss, shide55
 最終更新者: imanabu,