我有一个动态的 Actionscript 类如下:
public dynamic class Foo {....}
在我的代码中,我(可以)添加一些属性:
myFoo["myNewDynamicProp"] = "bar";
在我的代码的其他地方,给定类 Foo 的实例,我如何确定是否已经添加了该动态属性而不引发昂贵的异常?
最佳答案
你可以做三件事之一。首先,调用动态实例上不存在的属性不会引发异常。它只是返回 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
您也可以轻松地在第一个示例中使用括号表示法:myFoo['nothing']
关于actionscript-3 - 如何判断一个 Actionscript 对象是否具有某个动态属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7744139/