function isArray(a) {
  return Array.isArray ? Array.isArray(a) : Object.prototype.toString.call(a) === '[object Array]';
}

Array.isArray是ES6新增的一个方法,考虑不是所有浏览器都支持ES5,先做判断,如果浏览器支持Array.isArray()则使用,否则使用Object.prototype.toString.call()方法,注意这里说的toString()是Object原型链上的toString()方法,和obj.toString()是两码事。Object.prototype.toString.call()只会返回[Object [[Class]]]这种形式。