在读取对象之前,如何测试对象上是否存在属性?

Rob*_*cks 27 properties sprite actionscript-3

我正试图在一系列精灵上阅读一个属性.此属性可能存在也可能不存在于这些对象上,甚至可能不会被声明,甚至比null更糟.

我的代码是:

if (child["readable"] == true){
    // this Sprite is activated for reading
}
Run Code Online (Sandbox Code Playgroud)

所以Flash告诉我:

错误#1069:在flash.display.Sprite中找不到属性可选,并且没有默认值.

有没有办法在读取它的值之前测试属性是否存在?

就像是:

if (child.isProperty("readable") && child["readable"] == true){
    // this Sprite is activated for reading
}
Run Code Online (Sandbox Code Playgroud)

Gre*_*g B 56

AS3中的对象具有hasOwnProperty接受字符串参数的方法,并true在对象定义了该属性时返回.

if(myObj.hasOwnProperty("someProperty"))
{
    // Do something
}
Run Code Online (Sandbox Code Playgroud)


ken*_*ytm 19

if ("readable" in child) {
  ...
Run Code Online (Sandbox Code Playgroud)