2

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

我可以

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

但我讨厌创建一个实例只是为了测试祖先。我希望 if (ClassA is ClassB) 会起作用,但似乎没有。

AS 帮助状态

isPrototypeOf(theClass:Object):Boolean
指示 Object 类的实例是否在作为
参数指定的对象的原型链中。

我实际上并不了解 ActionScript 原型(我认为这可能会让我发疯),但我希望 Class 对象有某种方式可以利用它们的继承信息。

谢谢

4

1 回答 1

0

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

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

ClassA.extends(ClassB);

ActionScript 3 将原型继承转换为基于类的继承。您在 Actionscript 中不再使用原型,但它不是一个复杂的概念并且有其用途,因此您最好研究一下它。阅读“高级主题”中的“ ActionScript OOP 支持历史”和“原型对象

于 2009-09-23T00:23:33.013 回答