什么是括号语法?

时间:2013-07-20 06:52:25

标签: actionscript-3 flex syntax square-bracket

什么是括号语法?它与点语法有什么不同?使用括号语法比点语法有什么好处吗?你能举个例子吗?我是使用ActionScript 3.0进行编程的新手,我无法理解括号语法的工作原理。

感谢您的帮助!

2 个答案:

答案 0 :(得分: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.

最后,点符号更快而不是括号表示法。

答案 1 :(得分: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
}