← 返回首页
Reflect.get() - JavaScript | MDN

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

View in English Always switch to English

Reflect.get()

Baseline 広く利用可能

この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2016年9月以降、すべてのブラウザーで利用可能です。

Reflect.get() は静的メソッドで、プロパティアクセサー構文と同様に実装されていますが、関数として存在します。

目次

試してみましょう

const object = { x: 1, y: 2, }; console.log(Reflect.get(object, "x")); // 予想される結果: 1 const array = ["zero", "one"]; console.log(Reflect.get(array, 1)); // 予想される結果: "one"

構文

js
Reflect.get(target, propertyKey) Reflect.get(target, propertyKey, receiver)

引数

target

プロパティを取得する対象のオブジェクト。

propertyKey

設定するプロパティ名。

receiver 省略可

ゲッターがあった場合、 target への呼び出しで使用する this の値を提供します。

返値

プロパティの値です。

例外

TypeError

target がオブジェクトではなかった場合。

解説

Reflect.get() はプロパティアクセサーの反射的意味づけを提供します。つまり、Reflect.get(target, propertyKey, receiver) は意味的に次のものと同等です:

js
target[propertyKey];

通常のプロパティアクセスでは、target と receiver は明らかに同一のオブジェクトであることに注意してください。

Reflect.get() は、target の [[Get]] オブジェクト内部メソッド を呼び出します。

Reflect.get() の使用

js
// オブジェクト const obj1 = { x: 1, y: 2 }; Reflect.get(obj1, "x"); // 1 // 配列 Reflect.get(["zero", "one"], 1); // "one" // 取得ハンドラー付きプロキシー const obj2 = new Proxy( { p: 1 }, { get(t, k, r) { return `${k}bar`; }, }, ); Reflect.get(obj2, "foo"); // "foobar" // 取得ハンドラー及びレシーバー付きプロキシー const obj3 = new Proxy( { p: 1, foo: 2 }, { get(t, prop, receiver) { return `${receiver[prop]}bar`; }, }, ); Reflect.get(obj3, "foo", { foo: 3 }); // "3bar"

仕様書

仕様書
ECMAScript® 2027 Language Specification
# sec-reflect.get

ブラウザーの互換性

ブラウザー互換性一覧表を表示するには、JavaScript を有効にしてください。

関連情報