示例:
if (foo) {}
if (foo != undefined) {}
if (foo != null) {}
try {foo} catch(e:Error) {}
给出编译器错误。我该如何防止这种情况发生?
答案(感谢 Poke):
// declare the variable first
var foo:DisplayObject;
if (foo == null) {
trace('foo is null') // traces
}
最佳答案
ActionScript 3 是 statically typed 。这意味着每个变量都必须先声明才能以任何方式使用。变量的声明与变量第一次获取值的初始化无关;很多时候,两者都是同时完成的,尽管执行类似 var myVar:uint = 2
的操作(这将变量 myVar
声明为 uint
并且使用值 2
对其进行初始化)。
因此,在您的情况下,您会收到错误,因为您正在访问尚未声明的变量,因此编译器不知道您尝试访问的名称。因此,您需要确保在使用变量之前确实已声明该变量。
关于actionscript-3 - 使用 if 语句未定义的属性或对象仍然给出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14512356/