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属性

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容