Actionscript 3 AS3:通过名称或引用调用属性
我对AS有点陌生,在文档中偶然发现了一个“有趣的外观”功能: 可以使用对象类创建关联阵列。在其核心,关联数组是对象类的实例,每个键值对由属性及其值表示。使用对象数据类型声明关联数组的另一个原因是,然后可以使用对象文字填充关联数组(但仅在声明时)。以下示例使用对象文字创建关联数组,使用点运算符和数组访问运算符访问项,然后通过创建新属性添加新的键值对:Actionscript 3 AS3:通过名称或引用调用属性,actionscript-3,properties,operators,Actionscript 3,Properties,Operators,我对AS有点陌生,在文档中偶然发现了一个“有趣的外观”功能: 可以使用对象类创建关联阵列。在其核心,关联数组是对象类的实例,每个键值对由属性及其值表示。使用对象数据类型声明关联数组的另一个原因是,然后可以使用对象文字填充关联数组(但仅在声明时)。以下示例使用对象文字创建关联数组,使用点运算符和数组访问运算符访问项,然后通过创建新属性添加新的键值对: Copy var myAssocArray:Object = {fname:"John", lname:"Public"}; trace(myAs
Copy var myAssocArray:Object = {fname:"John", lname:"Public"};
trace(myAssocArray.fname); // John
trace(myAssocArray["lname"]); // Public
myAssocArray.initial = "Q";
trace(myAssocArray.initial); // Q
从
我知道,在某些情况下,这可能会有所帮助,比如说,但在大多数类型安全语言(如Java和C)中,我对哪种访问操作符是常见的做法以及原因感到有点困惑
通常我会使用点运算器,因为它允许我和编译器跟踪所有给定的属性,并且您可以保存关于打字错误的信息
我现在看到的代码使用了这两种方法,没有可识别的模式,这更令人困惑
有什么意见吗?一个比另一个好吗?为什么?什么时候用哪个
通常我会使用点运算器,因为它允许我和
编译器来跟踪所有给定的属性,然后保存
关于打字错误
你不能避免打字错误。创建对象时
,任何未定义/分配的属性都将返回未定义的
var awd:Object = {}
awd.aaa++ //NaN
awd ['aaa']++ //NaN
编译器不会捕获任何引用未定义属性的尝试
我几乎只使用[]
方法,因为它完成了我需要
方法完成的所有事情,还有更多。对我来说,最大的优势是我可以通过变量访问属性
var awd:Object = {}
var key:String = 'some_key';
awd [key] = 1;
awd.key = 5; //This will literally assign to the 'key' property, not what I want
好吧,我可能误用了“编译器”一词,我实际上是指IDE,突出显示已声明的属性并在自动完成上建议这些属性。上次我检查时,Adobe Flash Pro和FlashDevelop仍然无法识别
对象上声明的属性。