我在某处看到了以下声明 -
var someVariable:*;
为什么 someVariable 声明为*(星号)类型?用这种方式声明是什么用途?
答案 0 :(得分:8)
*
和Object
之间的实际区别在于*
可以是undefined
,而Object
则不能。{/ p>
文档有this说:
指定属性是无类型的。对样本注释使用星号符号等同于不使用类型注释。从非类型化属性读取的表达式被视为无类型表达式。在以下情况下,建议使用无类型表达式或属性:
如果要将类型检查推迟到运行时。您可以使用无类型属性或表达式来规避严格模式下的编译时类型检查。但请注意,无论是否使用严格模式,都会发生赋值语句的运行时类型检查。
如果要将值undefined存储在属性中。与以前版本的ActionScript不同,值undefined不是Object数据类型的成员。您必须使用无类型属性来存储未定义的值。