2010-11-05 113 views
5

我看到的地方下面的语句 -ActionScript变量类型

var someVariable:*; 

为什么someVariable声明为*(星号)类型?有什么用这种方式来声明它?

回答

7

*Object之间的实际差别是*可以undefinedObject不能。

的文档有this说:

指定属性是无类型。对于类型注释使用星号符号等同于不使用类型注释。从无类型属性读取的表达式被视为无类型表达式。在以下情况下建议使用无类型的表达式或属性:

  • 当您想要将类型检查推迟到运行时。您可以使用非类型化的属性或表达式以严格模式绕过编译时类型检查。但是,请注意,无论您是否使用严格模式,都会发生赋值语句的运行时类型检查。

  • 当您想要将未定义的值存储在属性中时。与以前版本的ActionScript不同,未定义的值不是Object数据类型的成员。您必须使用非类型化属性来存储未定义的值。