From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- .../reflect/defineproperty/index.html | 100 +++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 files/ja/web/javascript/reference/global_objects/reflect/defineproperty/index.html (limited to 'files/ja/web/javascript/reference/global_objects/reflect/defineproperty') diff --git a/files/ja/web/javascript/reference/global_objects/reflect/defineproperty/index.html b/files/ja/web/javascript/reference/global_objects/reflect/defineproperty/index.html new file mode 100644 index 0000000000..1ecbfb8a55 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/reflect/defineproperty/index.html @@ -0,0 +1,100 @@ +--- +title: Reflect.defineProperty() +slug: Web/JavaScript/Reference/Global_Objects/Reflect/defineProperty +tags: + - ECMAScript 2015 + - JavaScript + - Method + - Reference + - Reflect +translation_of: Web/JavaScript/Reference/Global_Objects/Reflect/defineProperty +--- +
{{JSRef}}
+ +

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

+ +
{{EmbedInteractiveExample("pages/js/reflect-defineproperty.html")}}
+ + + +

構文

+ +
Reflect.defineProperty(target, propertyKey, attributes)
+
+ +

引数

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

返値

+ +

プロパティの定義に成功したかどうかを示す {{jsxref("Boolean")}} です。

+ +

例外

+ +

{{jsxref("TypeError")}}: target が {{jsxref("Object")}} ではなかった場合。

+ +

解説

+ +

Reflect.defineProperty メソッドは、オブジェクトのプロパティの正確な追加や修正を行います。詳細は、類似メソッドの {{jsxref("Object.defineProperty")}} を参照してください。

+ +
Object.defineProperty はプロパティの定義が成功しなかった場合、オブジェクトを返すか {{jsxref("TypeError")}} を発生させます。しかし、Reflect.defineProperty は単純に、プロパティの定義が成功したかどうかを示す {{jsxref("Boolean")}} を返します。 + + +
+ +

+ +

Reflect.defineProperty() の使用

+ +
let obj = {}
+Reflect.defineProperty(obj, 'x', {value: 7})  // true
+obj.x                                         // 7
+
+ +

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

+ +

成功してオブジェクトを返すか、失敗して {{jsxref("TypeError")}} をスローする {{jsxref("Object.defineProperty")}} を使う場合、プロパティの定義中に発生する何らかの例外をキャッチするには、try...catch ブロックを使用します。

+ +

Reflect.defineProperty は真偽値の成功ステータスを返すので、if...else ブロックを使用することができます。

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

仕様書

+ + + + + + + + + + + + +
仕様書
{{SpecName('ESDraft', '#sec-reflect.defineproperty', 'Reflect.defineProperty')}}
+ +

ブラウザーの互換性

+ + + +

{{Compat("javascript.builtins.Reflect.defineProperty")}}

+ +

関連情報

+ + -- cgit v1.2.3-54-g00ecf