当我这样做时: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");
}
或者这仍然不被接受?什么是更好的解决方法?
答案 0 :(得分:0)
您可以使用
yourThing.constructor === Array
如果true
是数组,则返回yourThing
。
因此您无需更改Array的原型。 Modifying objects you don't own is widely seen as bad practice
答案 1 :(得分:0)
您可以使用instanceof
(MDN Documentation):
var arr = [];
if (arr instanceof Array) {
console.log('this is an array');
}