skip to main |skip to sidebar

2007-07-08

AS3.0的动态语言特性(1) - 类型检查

AS3.0本来是动态语言

AS2.0和AS3.0的编译时检查

首先定义一个空的类。

class Foo { }

再调用一个未定义的函数。

var foo:Foo = new Foo();
foo.nonExistingMethod();  // 未定义的函数的调用

编译时,AS2.0会弹出错误,但AS3.0不会(在非strict模式下)。这个结果就说明了AS3.0的编译时检查要松一些

AS2.0和AS3.0的运行时检查

AS2.0在运行时不会弹出错误,弹出了也捕获不到(比如递归时堆栈溢出,代码超时等)。虽然有 Error 类,但没有任何系统类使用。并且有一些Bug。

AS3.0在运行时会进行类型等检查,终于像其他的动态语言一样了。

没有评论: