actionscript - var x :* mean in actionscript? 究竟是什么

标签 actionscript

搜索 'var:*' 有点棘手,因为大多数搜索引擎都找不到它。

与 var:Object 相比,我不清楚 var:* 的确切含义

我认为它可以让我在对象上设置任意属性,例如:

var x:*  = myObject;
x.nonExistantProperty = "123";

但这给了我一个错误:
Property nonExistantProperty not found on x

* 究竟是什么意思?

编辑:我将原来的 var:* 修正为正确的 var x:*。失去了我的互联网连接

最佳答案

扩展其他答案,声明带有星号类型的内容与不输入类型完全相同。

var x:* = {};
var y = {}; // equivalent

但是,是否允许将不存在的属性分配给对象的问题与引用的类型无关,而是取决于对象是否是动态类的实例。

例如,由于 Object 是动态的而 String 不是:
var o:Object = {};
o.foo = 1; // fine
var a:* = o;
a.bar = 1; // again, fine

var s:String = "";
s.foo = 1; // compile-time error
var b:* = s;
b.bar = 1; // run-time error

请注意如何始终为对象分配新属性,而不管您使用哪种引用。同样,您永远不能为 String 分配新属性,但是如果您使用类型化引用,则编译器将捕获该引用,并且使用非类型化引用时,编译器不知道 b是否是动态的,所以错误发生在运行时。

顺便说一下,可以在此处找到有关类型星号的文档引用:

http://livedocs.adobe.com/labs/air/1/aslr/specialTypes.html#*



(由于星号,标记引擎拒绝链接它。)

关于actionscript - var x :* mean in actionscript? 究竟是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/207494/

相关文章:

javascript - 从 Flash 调用的 JavaScript 代码在哪个线程上执行?

apache-flex - 是否可以在运行时使用Flash或FMS对音频流进行降采样?

apache-flex - 是否可以创建 'command line' swf?

javascript - 如何以网格方式将影片剪辑添加到舞台上?

actionscript-3 - 如何在 ActionScript 对象的祖先类上调用静态函数?

flash - Actionscript - 获取当前函数的名称

javascript - 带外部 FLV 播放器的外部接口(interface)

ios - 将编码的 .mp3 保存到 applicationStorageDirectory Adob​​e Air iOS

java - Flex 中此声明的 Java 等效项是什么

apache-flex - Flex 中非常自定义/水平的 TreeView