js中判断object是否为数组的方法

1.使用ES5中的Array.isArray()方法

function isArray(obj){
    return Array.isArray(obj);
}

2.使用Object原生的toString()方法

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

对象原型方法toString会返回一个[object NativeConstructorName]格式字符串,指定了对象的原生构造函数名,一个普通对象则会返回[object Object]
同理,可以用这个方法判断是否为原生函数:

function isFunction(obj){
    return Object.prototype.toString.call(obj) === '[object Function]';
}

3.对象__proto__属性指向其原型对象(取决于浏览器实现,不支持IE)

function isArray(obj){
    return obj.__proto__ === Array.prototype;
}

实例如果是某个构造函数构造出来的那么 它的__proto__是指向构造函数的 prototype属性

你可能感兴趣的:(js中判断object是否为数组的方法)