Actionscript 3 带有if语句的未定义属性或对象仍给出错误
示例:Actionscript 3 带有if语句的未定义属性或对象仍给出错误,actionscript-3,flash,Actionscript 3,Flash,示例: 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 } 动作脚本3是。这意味
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
}
动作脚本3是。这意味着每个变量在以任何方式使用之前都必须声明。声明变量与其初始化无关,在初始化过程中变量第一次获得值;通常,通过执行类似于var-myVar:uint=2
的操作,这两项操作同时进行(这将变量myVar
声明为uint
,并使用值2
对其进行初始化)
因此,在您的例子中,您会得到一个错误,因为您正在访问一个尚未声明的变量,因此编译器不知道您试图访问的名称。因此,在使用变量之前,您需要确保它确实已声明。谢谢,这很有意义。我确实发现在现有对象中可以有一个null子对象,并且它不会抛出任何错误。