Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 AS3:通过名称或引用调用属性_Actionscript 3_Properties_Operators - Fatal编程技术网

Actionscript 3 AS3:通过名称或引用调用属性

Actionscript 3 AS3:通过名称或引用调用属性,actionscript-3,properties,operators,Actionscript 3,Properties,Operators,我对AS有点陌生,在文档中偶然发现了一个“有趣的外观”功能: 可以使用对象类创建关联阵列。在其核心,关联数组是对象类的实例,每个键值对由属性及其值表示。使用对象数据类型声明关联数组的另一个原因是,然后可以使用对象文字填充关联数组(但仅在声明时)。以下示例使用对象文字创建关联数组,使用点运算符和数组访问运算符访问项,然后通过创建新属性添加新的键值对: Copy var myAssocArray:Object = {fname:"John", lname:"Public"}; trace(myAs

我对AS有点陌生,在文档中偶然发现了一个“有趣的外观”功能:

可以使用对象类创建关联阵列。在其核心,关联数组是对象类的实例,每个键值对由属性及其值表示。使用对象数据类型声明关联数组的另一个原因是,然后可以使用对象文字填充关联数组(但仅在声明时)。以下示例使用对象文字创建关联数组,使用点运算符和数组访问运算符访问项,然后通过创建新属性添加新的键值对:

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仍然无法识别
对象上声明的属性。