1

a変数にプロパティP(非アクセサ プロパティ)与えたい場合、それが構成可能/列挙可能/書き込み可能かどうかは気にしません。

単純に実行する方が (考えられるすべての点で) 実際にはより有益であると 100% 確信できます。

a.P=value     // or
a["P"]=value

使用する代わりに

Object.defineProperty

したがって、原則として、Object.definePropertyアクセサーを作成する必要がある場合や、プロパティの構成可能/書き込み可能/列挙可能な状態を制御したい場合を除き、これに触れるべきではありませんか?

4

1 に答える 1

3

「より有益」とは言えませんが、機能は同じです。

a.p = value;

Object.defineProperty(a, 'p', {
    enumerable   : true,
    writable     : true,
    configurable : true,
    value        : value
});

多くのプロパティを定義している場合、明らかに後者の方がはるかに冗長であり、はるかに遅くなります (Chrome では約 1,000 倍遅くなります)。

http://jsperf.com/setting-object-properties

于 2011-05-27T08:09:20.113 に答える