当前位置:  开发笔记 > 编程语言 > 正文

AS3:检查变量是否为Object类型

如何解决《AS3:检查变量是否为Object类型》经验,为你挑选了2个好方法。

我想在Actionscript 3中做类似的事情:

if(variable is Object) ...;
else ...;

variable可能是String(),Number(),Array(),Object()...

目前,上述检查对所有这些类型都返回true,这是有道理的.但是,我只希望它为使用的对象返回true new Object().

任何帮助将非常感激!



1> Robert Bak..:

你应该尝试使用这个功能 - getQualifiedClassNametypeof.下面是一个代码,显示了它们对您列出的不同数据类型的行为方式,特别是Array和Numbers的区别:

码:

var o = new Array();                
trace ("var o = new Array()");
trace (getQualifiedClassName(o));
trace (typeof(o));      
var o = new Object();   
trace ("var o = new Object();");
trace (getQualifiedClassName(o));
trace (typeof(o));
var o = new String();
trace ("var o = new String()");
trace (getQualifiedClassName(o));
trace (typeof(o));
var o = new Number()
trace ("var o = new Number()");
trace (getQualifiedClassName(o));
trace (typeof(o));              
var o = 3.14;
trace ("var o = 3.14");
trace (getQualifiedClassName(o));
trace (typeof(o));

结果:

var o = new Array()
Array
object
var o = new Object();
Object
object
var o = new String()
String
string
var o = new Number()
int
number
var o = 3.14
Number
number

我假设你正在寻找getQualifiedClassName,它位于flash utils包中:

import flash.utils.getQualifiedClassName;



2> Chris Fulsto..:

尝试基于其中一个的东西:

if (variable.constructor.toString().match(/object/i) == 'Object')

if (variable.constructor.toString().indexOf("Object") != -1)

如果对象是Object(),那么构造函数字符串就是这样的

function Object() { ... }

所以你可以检查一下.

推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有