Reflect.set()
静的な Reflect.set()
メソッドは、オブジェクトにプロパティを設定するかのように動作します。
試してみましょう
構文
Reflect.set(target, propertyKey, value[, receiver])
引数
target
-
プロパティを設定する対象のオブジェクト。
propertyKey
-
設定するプロパティ名。
value
-
設定する値。
receiver
省略可-
セッターによって
target
が呼び出されたときのthis
値を提供する。
返値
プロパティが成功裏に設定できたかどうかを示す Boolean
値。
例外
解説
Reflect.set
メソッドは、オブジェクトにプロパティを設定します。これはプロパティの割り当てを行い、機能としては プロパティアクセサー 構文のようなものです。
例
Reflect.set() の使用
// オブジェクト
let obj = {}
Reflect.set(obj, 'prop', 'value') // true
obj.prop // "value"
// 配列
let arr = ['duck', 'duck', 'duck']
Reflect.set(arr, 2, 'goose') // true
arr[2] // "goose"
// 配列を切り詰められる。
Reflect.set(arr, 'length', 1) // true
arr // ["duck"]
// 引数が1つだけだと、プロパティキーと値は "undefined" になる。
let obj = {}
Reflect.set(obj) // true
Reflect.getOwnPropertyDescriptor(obj, 'undefined')
// { value: undefined, writable: true, enumerable: true, configurable: true }
仕様書
Specification |
---|
ECMAScript Language Specification # sec-reflect.set |
ブラウザーの互換性
BCD tables only load in the browser