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

IE8 - IsArray() gets an error object expected

我很好奇为什么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。我知道它不受官方支持,但我会尝试使用该应用程序来更好或更差地工作。

谢谢。

从 IE 9 开始有 Array.isArray()。

试试这个:

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

Array.isArray(obj);