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