搜索 '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/