我需要确定一个类是否(直接或间接)从另一个类下降。
我能做到
var testInstance : Object = new ClassA();
if (testInstance is ClassB)
...
但我讨厌创建一个实例来测试祖先。我希望如果(ClassA是ClassB)可行,但似乎没有。
AS帮助状态
isPrototypeOf(theClass描述:对象):布尔
指示Object类的实例是否在指定为
的对象的原型链中 参数。
我实际上并不了解ActionScript原型(我认为它可能会让我感到疯狂),但我希望Class对象可以通过某种方式获取其继承信息。
由于
答案 0 :(得分:0)
原型是实例,可以是class(用于类继承),也可以是父类(用于原型继承)。尝试:
Object.prototype.extends=function (theClass:Object):boolean {
return this.prototype instanceof theClass;
}
ClassA.extends(ClassB);
ActionScript 3将shoehorns原型继承转换为基于类的继承。你在Actionscript中不再使用原型了,但它并不是一个复杂的概念并且有其用途,所以你应该好好研究它。阅读“History of ActionScript OOP support”
中的“The prototype object”和“Advanced topics”