2

例子:

if (foo) {}


if (foo != undefined) {}


if (foo != null) {}


try {foo} catch(e:Error) {}

给出编译器错误。我该如何防止这种情况?

答案(感谢戳):

// declare the variable first   
var foo:DisplayObject;

if (foo == null) {
    trace('foo is null') // traces  
}
4

1 回答 1

2

ActionScript 3 是静态类型的。这意味着必须先声明每个变量,然后才能以任何方式使用它。声明一个变量与变量第一次取值的初始化无关;很多时候,两者都是同时完成的,尽管做了类似的事情var myVar:uint = 2(这将变量声明myVaruint并用 value 初始化它2)。

因此,在您的情况下,您会收到一个错误,因为您正在访问一个尚未声明的变量,因此编译器不知道您尝试访问的名称。因此,您需要确保在使用变量之前实际声明了您的变量。

于 2013-01-24T22:59:57.323 回答