Reflect.set()

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

構文

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

引数

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

返値

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

例外

targetObject ではなかった場合、 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)
Reflect.set の定義
標準 初回定義
ECMAScript Latest Draft (ECMA-262)
Reflect.set の定義
ドラフト  

ブラウザーの対応

Update compatibility data on GitHub
デスクトップモバイルサーバー
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung InternetNode.js
setChrome 完全対応 49Edge 完全対応 12Firefox 完全対応 42IE 未対応 なしOpera 完全対応 36Safari 完全対応 10WebView Android 完全対応 49Chrome Android 完全対応 49Firefox Android 完全対応 42Opera Android 完全対応 36Safari iOS 完全対応 10Samsung Internet Android 完全対応 5.0nodejs 完全対応 6.0.0

凡例

完全対応  
完全対応
未対応  
未対応

関連情報