什么是括号语法?它与点语法有什么不同?使用括号语法比点语法有什么好处吗?你能举个例子吗?我是使用ActionScript 3.0进行编程的新手,我无法理解括号语法的工作原理。
感谢您的帮助!
答案 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
}