0

当我这样做时:typeof([])它返回object.

我听说编辑 JavaScript 内置类型的原型是不可接受的。

但是,如果我这样做:Array.prototype.isArray = true;然后进行以下工作:

var arr = [];
var obj = {};

if (arr.isArray)
{
    console.log("Array");
}
else
{
    console.log("Not array");
}

if (obj.isArray) // undefined
{
    console.log("Array");
}
else
{
    console.log("Not array");
}

或者这仍然不能接受?有什么更好的方法来解决这个问题?

4

2 回答 2

0

你可以使用

yourThing.constructor === Array

这将返回trueifyourThing是一个数组。

所以你不必改变 Array 的原型。修改不属于您的对象被广泛视为不好的做法

于 2013-10-08T08:51:43.107 回答
0

您可以使用instanceofMDN 文档):

var arr = [];
if (arr instanceof Array) {
  console.log('this is an array');
}
于 2013-10-08T08:57:17.690 回答