1

JavaScript の本を読みながら、私はそれを読みました

「オブジェクトに直接定義」されている場合、データ プロパティのすべての属性はデフォルトで true になります。

その後、いくつかの説明の後、それは再び言います

「Object.defineProperty() を使用している場合」、構成可能、列挙可能、および書き込み可能の値は、特に指定がない限り、デフォルトで false になります。

最初のステートメントで「オブジェクトに直接定義された」とは、ドット演算子を使用するか、次のようなオブジェクトリテラル表記を使用することを意味すると思います。

var obj = new Object();
obj.name = "Mahesh";

しかし、いずれかの方法でプロパティがオブジェクトに追加された後、これらの属性が何に設定されているかを確認する方法はありますか?

4

1 に答える 1

3

使用できますgetOwnPropertyDescriptor

> var desc = Object.getOwnPropertyDescriptor(obj, 'name');
{"value":"Mahesh","writable":true,"enumerable":true,"configurable":true}

descフラグconfigurableとが含まれますenumerable。プロパティがデータ記述子 (nogetまたはset)の場合、フラグdescも含まれます。プロパティがアクセサ記述子である場合は、およびメソッドも含まれます。valuewritabledescgetset

于 2012-10-18T20:08:44.870 に答える