IE8 - IsArray()获取预期的错误对象

时间:2015-04-10 15:40:09

标签: javascript angularjs internet-explorer methods internet-explorer-8

我很好奇为什么IE8会在线上窒息

if (isArray(obj))

这是我在IE8 javascript控制台中获得的:

>>obj
{...}
>>typeof(obj)
"object"
>>Object.prototype.toString.call(obj)
"[object Array]"

甚至

>>obj.length
7

然而,

>>isArray(obj)
  Object expected

为什么会发生这种情况(ie8不支持isArray?)以及解决问题的最佳方法是什么?

我试图在IE8上使用新版本的Angular。我知道它没有得到官方的支持,但我会试着让应用程序更好或更差。

谢谢。

1 个答案:

答案 0 :(得分:6)

因为IE 9有Array.isArray()。

试试这个:

Array.isArray = function (obj) {
    return Object.prototype.toString.call(obj) === "[object Array]";
};

Array.isArray(obj);