variable.Property = "test" против Object.defineProperty (переменная, "Свойство") - PullRequest
1 голос
/ 27 мая 2011

Если я хочу присвоить переменной a свойство P (свойство без доступа) и Мне все равно, настраивается ли оно / перечисляется / доступно для записи.

Iможет быть на 100% уверен, что на самом деле выгоднее (во всех возможных ситуациях) просто выполнить

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

вместо использования

Object.defineProperty

Так что, как правило, как правило, мы не должны касаться этого Object.defineProperty, если только нам не нужно создавать средства доступа и / или мы не хотим управлять настраиваемым / доступным для записи / перечисляемым состоянием свойств?

1 Ответ

3 голосов
/ 27 мая 2011

Я бы не сказал, что это «более выгодно», но они идентичны по функциональности:

a.p = value;

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

Очевидно, что последний гораздо более многословен, также намного *На 1007 * медленнее (примерно в 1000 раз медленнее в Chrome), если вы задаете много свойств:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...