Поиск свойств объекта JavaScript - имеет ли значение синтаксис? - PullRequest
3 голосов
/ 02 июня 2011

Это основной вопрос о языке JavaScript (ECMAScript), поэтому я заранее прошу прощения, если он повторяется (небольшой поиск не выявил моего точного вопроса).

В ECMAScript мы можем использовать две основные синтаксические формы для получения / установки свойств объекта, и они, похоже, имеют точно такой же эффект. Поскольку я не знаю лучше, я назову их нотациями «свойство» и «ассоциативный массив»:

var o = {};
// Property notation.
o.foo = 'Foo'; // (set)
o.foo; // => "Foo" (get)
// Associative array notation.
o['bar'] = 'Bar'; // (set)
o['bar']; // => "Bar" (get)
// They seem to be interchangeable.
o['foo']; // => "Foo"
o.bar; // => "Bar"

Есть ли реальные различия между этими двумя обозначениями? Очевидно, что ассоциативная запись массива позволяет нам искать динамически сгенерированные ключи на объекте (и принудительно преобразует свой аргумент в строку), тогда как запись свойства использует литерал, но единственное ли это отличие?

1 Ответ

5 голосов
/ 02 июня 2011

Вы правы; они идентичны.

...