静的な 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 版 ChromeEdge MobileAndroid 版 FirefoxAndroid 版 OperaiOS 版 SafariSamsung InternetNode.js
基本対応Chrome 完全対応 49Edge 完全対応 12Firefox 完全対応 42IE 未対応 なしOpera 完全対応 36Safari 完全対応 10WebView Android 完全対応 49Chrome Android 完全対応 49Edge Mobile 完全対応 ありFirefox Android 完全対応 42Opera Android 完全対応 36Safari iOS 完全対応 10Samsung Internet Android 完全対応 5.0nodejs 完全対応 6.0.0

凡例

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

関連項目

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

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