2013-07-20 19 views
1

Что такое синтаксис скобок и как он отличается от синтаксиса точки? Есть ли преимущества в использовании синтаксиса синтаксиса для синтаксиса точек? Не могли бы вы привести мне пример? Я новичок в программировании с помощью ActionScript 3.0, и мне сложно понять, как работает синтаксис.Что такое синтаксис командной строки?

Благодарим за помощь!

+1

возможно дубликат [Использование. или \ [\] для доступа к свойствам объекта - какая разница?] (http://stackoverflow.com/questions/9097664/using-or-to-access-object-properties-whats-the-difference) – weltraumpirat

ответ

3

Есть ли какие-либо преимущества использования синтаксиса брекет над точечным синтаксисом?

Конечно, есть:

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. 

Наконец, точка обозначения быстрее чем кронштейн нотации.

+0

объект [ foo.bar "] // ссылается на свойство foo.bar объекта object.foo.bar // ссылается на свойство bar для foo, которое является свойством объекта – Lindsay

+0

Я вижу, что есть разница между ними, но как это НАСТОЯТЕЛЬНО отличается ? Как foo.bar одно свойство? – Lindsay

+1

Как и при описании свойства объекта как 'foo.bar', как' object ["foo.bar"] = somevalue; ' – NINCOMPOOP

1

Что касается объектов в AS3, вы можете использовать квадратные скобки вместо синтаксиса точек, если вы хотите использовать строку или строковую переменную для ссылки на какое-либо свойство объекта.

Например

var myObj:Object = {someProperty:"Some Value"}; 

trace(myObj['someProperty']); //Outputs: Some Value 
trace(myObj.someProperty); //Outputs: Some Value 

var myProperty:String = "someProperty"; 
trace(myObj[myProperty]); //Outputs: Some Value 

for(var property in myObj) 
{ 
    trace(myObj[property]); //trace out each properties value of myObj 
} 
Смежные вопросы