0

ここで説明されているプロパティ属性の使用法について詳しく知りたい: http://www.ecma-international.org/ecma-262/5.1/#sec-8.6.1

これらの属性の使用例は想像できますが、非常にまれです。さらに、書き込み可能、​​列挙可能、および構成可能なプロパティはデフォルトで false に設定されていますが、ほとんどの場合、これらの値をtrueにしたいので、設定する必要があります。デフォルトで false になっているのはなぜですか?

オブジェクトを作成してその属性を設定することは、私にとって非常に基本的なことでした。今では、人工的、不自然、複雑、不快などと表現できるプロパティ記述子があります。たぶん、私は非常に重要な何かを逃しただけです。

私の質問は次のとおりです。プロパティ属性の主な目的は何ですか。それらをどのように使用できますか?

プロパティ記述子の使用を避けることはできますか? たとえば、属性を設定する良いパターンがありますか? たとえば、2 番目のパラメータ「Properties」で Object.create を使用すると、プロパティ記述子を使用する必要があります。だから私はこれを使うのを避けるべきですか?

4

2 に答える 2

1

writeable のデフォルトはfalse

名前付きプロパティのこの仕様で属性の値が明示的に指定されていない場合

手動で定義するプロパティの場合は、たとえば次のようになりますtrue。注意すべきことは、ecmascript 自体とその上に何も指定されていないものと、javascript/jscript の方言との間には大きな違いがあるということです。

いずれにせよ、フレームワークやそれに沿ったものを作成することを検討している場合を除いて、一般に、これらの属性プロパティを使用して何もするべきではありません。たとえば、prototype.js はこれを使用して を設定できます。Enumerablefalseはそれを使用して を再定義し、Get開発者が使いやすい (別のネイティブ構文に似た) 少し風変わりな構文を使用できるようにしました。必要ありません。

于 2013-04-29T12:18:50.633 に答える