现在的位置: 首页 > 综合 > 正文

hasOwnProperty

2013年08月16日 ⁄ 综合 ⁄ 共 1009字 ⁄ 字号 评论关闭

Object.hasOwnProperty(V:*=null):Boolean

指示对象是否已经定义了指定的属性。如果目标对象具有与 name 参数指定的字符串匹配的属性,则此方法返回 true;否则返回 false。以下类型的属性导致该方法对属于类实例的对象(而不是类对象)返回 true

  • 固定实例属性 — 对象类定义的非静态变量、常量或方法;
  • 继承的固定实例属性 — 对象类继承的变量、常量或方法;
  • 动态属性 — 对象实例化后添加到其中的属性(在其类定义之外)。要添加动态属性,必须用 dynamic 关键字声明对象的定义类。

以下类型的属性导致该方法对属于类实例的对象返回 false

  • 静态属性 -- 在对象的定义类或其任何超类中使用静态关键字定义的变量、常量或方法;
  • 原型属性 -- 在原型对象上定义的属于对象原型链一部分的属性。在 ActionScript 3.0 中,虽然原型链不用于类继承,但仍可作为继承的一种替代形式存在。例如,Array 类的一个实例可以访问 valueOf() 方法,因为它位于属于 Array 类原型链一部分的 Object.prototype 上。虽然可以在 Array 实例中使用 valueOf(),但对该实例返回的 hasOwnProperty("valueOf") 值为 false

ActionScript 3.0 还包含类对象,它是类定义的直接表示形式。调用类对象时,仅当属性是该类对象中定义的静态属性时,hasOwnProperty() 方法才返回 true。例如,如果创建名为 CustomArray 的 Array 子类,并在 CustomArray 中定义一个名为 foo 的静态属性,对 CustomArray.hasOwnProperty("foo") 的调用则返回 true。然而,对于在 Array 类中定义的静态属性 DESCENDING,对 CustomArray.hasOwnProperty("DESCENDING") 的调用返回 false

注意:Object 类的方法是在 Object 的原型上动态创建的。要在 Object 的子类中重新定义该方法,请不要使用 override 关键字。例如,Object 的一个子类实现 function hasOwnProperty():Boolean 而不使用基类覆盖。

参数:
name 对象的属性。
返回:
如果目标对象具有 name 参数指定的属性,则该值为 true;否则为 false
语言版本:
3.0
Player 版本:
Flash 9, AIR 1.0

抱歉!评论已关闭.