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

Har*_*iec 1 javascript methods internet-explorer internet-explorer-8 angularjs

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

if (isArray(obj))
Run Code Online (Sandbox Code Playgroud)

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

>>obj
{...}
>>typeof(obj)
"object"
>>Object.prototype.toString.call(obj)
"[object Array]"
Run Code Online (Sandbox Code Playgroud)

乃至

>>obj.length
7
Run Code Online (Sandbox Code Playgroud)

然而,

>>isArray(obj)
  Object expected
Run Code Online (Sandbox Code Playgroud)

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

我正在尝试使用新版本的Angular for IE8.我知道它没有得到官方的支持,但是我会尝试使应用程序更好或更差.

谢谢.

小智 8

因为IE 9有Array.isArray().

试试这个:

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

Array.isArray(obj);
Run Code Online (Sandbox Code Playgroud)