Reflect.defineProperty()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2016.
静的な Reflect.defineProperty()
メソッドは、Object.defineProperty()
と似ていますが、 Boolean
を返します。
試してみましょう
構文
Reflect.defineProperty(target, propertyKey, attributes)
引数
target
-
プロパティを定義する対象のオブジェクトです。
propertyKey
-
定義または修正をするプロパティ名です。
attributes
-
定義または修正されているプロパティのための属性です。
返値
プロパティの定義に成功したかどうかを示す Boolean
です。
例外
解説
Reflect.defineProperty
メソッドは、オブジェクトのプロパティの正確な追加や修正を行います。詳細は、類似メソッドの Object.defineProperty
を参照してください。
例
Reflect.defineProperty() の使用
js
let obj = {};
Reflect.defineProperty(obj, "x", { value: 7 }); // true
obj.x; // 7
プロパティ定義が成功したかチェックする
成功してオブジェクトを返すか、失敗して TypeError
をスローする Object.defineProperty
を使う場合、プロパティの定義中に発生する何らかの例外をキャッチするには、try...catch
ブロックを使用します。
Reflect.defineProperty
は真偽値の成功ステータスを返すので、if...else
ブロックを使用することができます。
js
if (Reflect.defineProperty(target, property, attributes)) {
// success
} else {
// failure
}
仕様書
Specification |
---|
ECMAScript Language Specification # sec-reflect.defineproperty |
ブラウザーの互換性
BCD tables only load in the browser