We're looking for a user researcher to understand the needs of developers and designers. Is this you or someone you know? Check out the post: https://mzl.la/2IGzdXS

この翻訳は不完全です。英語から この記事を翻訳 してください。

静的なReflect.defineProperty()メソッドは、Object.defineProperty()と似ていますが、Booleanを返します。

構文

Reflect.defineProperty(target, propertyKey, attributes)

パラメータ

target
プロパティを定義する対象のオブジェクト。
propertyKey
定義または修正をするプロパティ名。
attributes
定義または修正されているプロパティのための属性。.

戻り値

プロパティが成功裏に定義されたかどうかを示すBoolean

エラーのスロー

targetObjectではなかった場合、TypeErrorをスローする。

説明

Reflect.definePropertyメソッドは、オブジェクトのプロパティの正確な追加や修正を行います。詳細は、類似しているメソッドであるObject.definePropertyを見てください。 Object.definePropertyはプロパティが成功裏に定義できなかった場合、オブジェクトを返すかTypeErrorをスローします。しかし、Reflect.definePropertyは単純に、プロパティが成功裏に定義されたかどうかを示すBooleanを返します。

Reflect.defineProperty()の使用

var obj = {};
Reflect.defineProperty(obj, "x", {value: 7}); // true
obj.x; // 7

プロパティ定義が成功したかチェックする

成功してオブジェクトを返すか、失敗してTypeErrorをスローするObject.definePropertyを使う場合、プロパティの定義中に発生する何らかの例外をキャッチするには、try...catchブロックを使用します。 Reflect.definePropertyはBooleanの成功ステータスを返すので、if...elseブロックを使えます:

if (Reflect.defineProperty(target, property, attributes)) {
  // success
} else {
  // failure
}

仕様

仕様 状態 コメント
ECMAScript 2015 (6th Edition, ECMA-262)
Reflect.defineProperty の定義
標準 Initial definition.

ブラウザ実装状況

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support 未サポート 42 (42) 未サポート 未サポート 未サポート
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support 未サポート 未サポート 42.0 (42) 未サポート 未サポート 未サポート

関連項目

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

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