代码之家  ›  专栏  ›  技术社区  ›  Richard Haven

除了创建一个实例,如何判断ActionScript中的ClassA是否从ClassB下降?

  •  2
  • Richard Haven  · 技术社区  · 15 年前

    我需要确定一个类是否(直接或间接)从另一个类下降。

    我能做到

    var testInstance : Object = new ClassA();
    if (testInstance is ClassB)
        ...
    

    但我讨厌创建一个实例来测试祖先。我希望(A班是B班)能奏效,但似乎不行。

    作为帮助说明

    IsPrototypeof(类别:对象):布尔型
    指示对象类的实例是否位于指定为
    参数。

    我并不真正理解ActionScript原型(我认为这可能会让我发疯),但我希望类对象有某种方法可以利用它们的继承信息。

    谢谢

    1 回复  |  直到 13 年前
        1
  •  0
  •   outis    15 年前

    原型是实例,或者 class (用于类继承)或父类(用于原型继承)。尝试:

    Object.prototype.extends=function (theClass:Object):boolean {
        return this.prototype instanceof theClass;
    }
    
    ClassA.extends(ClassB);
    

    ActionScript3将原型继承转换为基于类的继承。在ActionScript中不再使用原型,但它不是一个复杂的概念,并且有它的用途,所以您应该好好研究它。读“ History of ActionScript OOP support “和” The prototype object “从” Advanced topics