AS3:按名称或引用调用属性

时间:2014-08-06 16:18:53

标签: actionscript-3 properties operators

我是AS的新手,偶然发现了文档中“看起来很滑稽”的功能:

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

Copy var myAssocArray:Object = {fname:"John", lname:"Public"};
 trace(myAssocArray.fname);     // John
 trace(myAssocArray["lname"]);  // Public
 myAssocArray.initial = "Q";
 trace(myAssocArray.initial);   // Q

来自here.

我理解在某些情况下这可能会有所帮助,例如this one但在大多数类型安全的语言(例如Java和C#)中都有背景我对于哪种访问操作符是常见做法以及原因有点困惑。

通常情况下我会选择dot oporator,因为它允许我和编译器跟踪所有给定的属性,并且你可以节省打字错误。

我现在看的代码使用两者,没有可识别的模式,这更令人困惑。

对此有任何意见吗?这个比那个好吗?为什么?何时使用哪一个?

1 个答案:

答案 0 :(得分:1)

  

通常情况下,我会选择dot oporator,因为它允许我和   编译器跟踪所有给定的属性,你是保存   关于拼写错误。

你不能安全地打击拼写错误。当您创建Object时,您尚未定义/分配的任何属性都将返回undefined

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