HDa*_*ave 3 apache-flex dynamic actionscript-3
我有一个动态的Actionscript类,如下所示:
public dynamic class Foo {....}
Run Code Online (Sandbox Code Playgroud)
在我的代码中我(可能)添加一些属性:
myFoo["myNewDynamicProp"] = "bar";
Run Code Online (Sandbox Code Playgroud)
在我的代码的其他地方,给定一个类Foo的实例,如何确定是否已添加该动态属性而不抛出昂贵的异常?
你可以做三件事之一.首先,调用dyanmic实例上不存在的属性不会引发异常.它只是返回undefined,所以你可以测试它.或者您可以使用in关键字.或者您可以使用该hasOwnProperty()方法.
考虑以下:
var myFoo:Foo = new Foo();
myFoo.newProp = "bar";
trace(myFoo.newProp != undefined); // true
trace(myFoo.nothing != undefined); // false
trace("newProp" in myFoo); // true
trace("nothing" in myFoo); // false
trace(myFoo.hasOwnProperty("newProp")); // true
trace(myFoo.hasOwnProperty("nothing")); // false
Run Code Online (Sandbox Code Playgroud)
您也可以像第一个示例一样轻松使用括号表示法: myFoo['nothing']