Actionscript 3 AS3:如何严格测试实例是否为对象类型?

Actionscript 3 AS3:如何严格测试实例是否为对象类型?,actionscript-3,inheritance,Actionscript 3,Inheritance,如何测试实例是否为Object类型?如果我尝试is操作符,所有对象子类也会返回true var o:Object = {}; var s:Sprite = new Sprite(); trace(o is Object); //true trace(s is Object); //true 如果实例是一个对象超类而不是它无数的子类中的任何一个,我怎么能让它只返回true呢?该方法返回实例及其作为方法参数传递的类的确切字符串表示形式 import flash.utils.getQualified

如何测试实例是否为Object类型?如果我尝试is操作符,所有对象子类也会返回true

var o:Object = {};
var s:Sprite = new Sprite();
trace(o is Object); //true
trace(s is Object); //true
如果实例是一个对象超类而不是它无数的子类中的任何一个,我怎么能让它只返回true呢?

该方法返回实例及其作为方法参数传递的类的确切字符串表示形式

import flash.utils.getQualifiedClassName;

var O:Object = {};
var S:Sprite = new Sprite;

var GQ:Function = getQualifiedClassName;

trace(GQ(O) == GQ(Object)); // true
trace(GQ(S) == GQ(Object)); // false
UPD:还有另外一种方法,尽管我个人不太喜欢。您可以使用可能指向给定实例的类构造函数的属性

function isObject(target:Object):Boolean
{
    return target.constructor == Object
}

trace(isObject(O)); // true
trace(isObject(S)); // false
该方法返回实例及其作为方法参数传递的类的确切字符串表示形式

import flash.utils.getQualifiedClassName;

var O:Object = {};
var S:Sprite = new Sprite;

var GQ:Function = getQualifiedClassName;

trace(GQ(O) == GQ(Object)); // true
trace(GQ(S) == GQ(Object)); // false
UPD:还有另外一种方法,尽管我个人不太喜欢。您可以使用可能指向给定实例的类构造函数的属性

function isObject(target:Object):Boolean
{
    return target.constructor == Object
}

trace(isObject(O)); // true
trace(isObject(S)); // false