--- title: Reflect.set() slug: Web/JavaScript/Reference/Global_Objects/Reflect/set tags: - ECMAScript 2015 - JavaScript - Method - Reference - Reflect translation_of: Web/JavaScript/Reference/Global_Objects/Reflect/set ---
静的な Reflect.set() メソッドは、オブジェクトにプロパティを設定するかのように動作します。
Reflect.set(target, propertyKey, value[, receiver])
targetpropertyKeyvaluereceiver {{optional_inline}}target が呼び出されたときの this 値を提供する。プロパティが成功裏に設定できたかどうかを示す {{jsxref("Boolean")}} 値。
{{jsxref("TypeError")}}: target が {{jsxref("Object")}} ではなかった場合。
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 }
| 仕様書 |
|---|
| {{SpecName('ESDraft', '#sec-reflect.set', 'Reflect.set')}} |
{{Compat("javascript.builtins.Reflect.set")}}