Есть ли какие-либо преимущества использования синтаксиса брекет над точечным синтаксисом?
Конечно, есть:
object["foo.bar"] // refers to foo.bar property of object
object.foo.bar // refers to bar property of foo which is a property of object
Чтобы устранить такие свойства любого объекта с .
вам необходимо использовать квадратные скобки, обозначения, потому что точечная нотация будет интерпретировать его иначе.
Другим отличием будет вид раз. Если вы используете синтаксис точек, компилятор будет знать во время компиляции, что вы получаете доступ к свойству этого объекта. Если вы используете синтаксис скобки, фактический поиск свойства выполняется во время выполнения. Следовательно:
object[someKey] // the runtime value of someKey will be used to get a property
object.someKey // resolves to someKey property of an object.
Наконец, точка обозначения быстрее чем кронштейн нотации.
возможно дубликат [Использование. или \ [\] для доступа к свойствам объекта - какая разница?] (http://stackoverflow.com/questions/9097664/using-or-to-access-object-properties-whats-the-difference) – weltraumpirat