通过该类的实例获取类的名称

时间:2010-01-09 01:30:33

标签: actionscript-3 classname

我有一个函数,它将(自定义)类的2个实例作为参数。但是它们可以是几个类中的一个,然后我需要根据它们的类型调用另一个函数。我想做这样的事情:

function any_any(inst1, inst2) {
    this[inst1.classname + "_" + inst2.classname] (inst1, inst2);
}
function Circle_Line(circle:Circle, line:Line) {
    //treat this case
}

我应该在每个类中定义'classname',还是有更好的方法来获取实例的类名? 我不知道如何让typeof()为自定义类返回除'object'以外的任何东西,也许它可能?

编辑:使用instanceof运算符会很不方便,因为每个类可以是6个中的1个(当前)。

3 个答案:

答案 0 :(得分:3)

答案 1 :(得分:0)

您可以使用instanceof

   var a:Number;

   if (a instanceof Number)
   {
       trace("a is a number");
   }

答案 2 :(得分:-1)

获取实例类的另一种方法是使用

var c:Class = instance["constructor"];

然后你可以这样做:

switch(c)
{
    case Circle:
        whatever();
}