MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

Reflect.set()

これは Harmony(ECMAScript 6) 提案の一部であり、実験段階の技術です。
この技術の仕様は安定していません。ブラウザ互換性の一覧表を確認してください。またこれらの構文や動作は、仕様変更などにより、新しいバージョンのブラウザでは変更される可能性があるという点に注意してください。

静的な Reflect.set() メソッドは、オブジェクトにプロパティを設定するかのように動作します。

構文

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

Parameters

target
プロパティを設定する対象のオブジェクト。
propertyKey
設定するプロパティ名。
value
設定する値。
receiver
セッターによって target が呼び出されたときの this 値を提供する。

戻り値

プロパティが成功裏に設定できたかどうかを示す Boolean 値。

スローされるエラー

target が Object ではなかった場合、 TypeError がスローされる。

説明

Reflect.set メソッドは、オブジェクトにプロパティを設定します。これはプロパティの割り当てを行い、機能としては プロパティアクセッサ 構文のようなものです。

Reflect.set() を使用する

// オブジェクト
var obj = {};
Reflect.set(obj, "prop", "value"); // true
obj.prop; // "value"

// 配列
var arr = ["duck", "duck", "duck"];
Reflect.set(arr, 2, "goose"); // true
arr[2]; // "goose"

// 配列を切り詰められる。
Reflect.set(arr, "length", 1); // true
arr; // ["duck"];

// 引数が1つだけだと、プロパティキーと値は "undefined" になる。
var obj = {};
Reflect.set(obj); // true
Reflect.getOwnPropertyDescriptor(obj, "undefined");
// { value: undefined, writable: true, enumerable: true, configurable: true }

仕様

仕様 状態 コメント
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Reflect.set' in that specification.
Standard Initial definition.

ブラウザ実装状況

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

関連項目

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

 このページの貢献者: YuichiNukiyama
 最終更新者: YuichiNukiyama,