在写JS脚本过程中,需要知道某个变量对象类型是否是Array,虽然js提供了typeof函数,但是typeof无法知道是否是Array类,它只能返回如下类型:
"number," "string," "boolean," "object," "function," 和 "undefined."
并且Array对象也没有类似isArray等判断的方法;难道真的没有办法了吗?囧囧,答案是否定的。查找JS手册,发现object有一个propotype属性--- constructor,其作用是得到创建对象的函数。示例如下:
x
=
new
String(
"
Hi
"
);
if (x.constructor == String)
// 进行处理(条件为真)。
或
function MyFunc ... {
// 函数体。
}
y = new MyFunc;
if (y.constructor == MyFunc)
// 进行处理(条件为真)。
if (x.constructor == String)
// 进行处理(条件为真)。
或
function MyFunc ... {
// 函数体。
}
y = new MyFunc;
if (y.constructor == MyFunc)
// 进行处理(条件为真)。
Array是继承object的,那么它也有constructor属性。我们一般声明Array类型的变量的代码像这样:
var
arr
=
new
Array();
if
(arr.constructor
==
Array) alert(
'
true
'
);
else
alert(
'
false
'
);
var
arr
=
[[
1
,
2
],[
3
,
4
],[
'
abc
'
,
'
qk
'
]];
答案同样是肯定的。如果有疑问或有更好的方法请告诉我!
---------------------------------------------------------------------------------
最佳答案:用js的instanceof即可。类似java的instanceof;