使用 constructor 属性来查看对象是否为数组
function isArray1(myArray) {
return myArray.constructor.toString().indexOf("Array") > -1;
}
/*
myArray.constructor: 获取了myArray1的构造函数。对于一个数组,将是Array。
.toString(): 调用对象的toString()方法。对于Array的构造函数,会返回一个字符串,表示数组的元素,例如"function Array() { [native code] }"。
.indexOf("Array"): 这在返回的字符串中查找"Array"子字符串的位置。如果这个子字符串不存在,那么它将返回-1。
> -1: 这是一个条件判断。如果"Array"子字符串在构造函数的字符串表示中存在(即,位置不是-1),那么这个条件为真。
即函数返回一个布尔值
*/
var a=new Array
console.log(isArray1(a))