欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JavaScript三种区分对象和数组的方法介绍

程序员文章站 2022-05-14 18:18:13
解决问题时有时会碰到需要区分是对象还是数组的问题。 下面介绍三种方法: 1:constructor var obj={}; var ar...

解决问题时有时会碰到需要区分是对象还是数组的问题。

下面介绍三种方法:

1:constructor

        var obj={};
        var arr=[];

我可以直接调用constructor属性来看一下它们的构造函数。

JavaScript三种区分对象和数组的方法介绍

2:instanceof

a instanceof ?b?判断a的原型链上面有没有b的原型

很明显 obj上面没有array原型,但是arr有

JavaScript三种区分对象和数组的方法介绍

3 object.prototype.tostring.call()

JavaScript三种区分对象和数组的方法介绍

tostring()方法本身是对象.tostring()调用的,不同对象调用时,方法也不一样,所以我们就肯定猜测tostring()里面一定有this来判断调用者的类型,然后调用对应的tostring()函数,而call正好可以改变内部this指向的对象。

那么为什么要用object.prototype的了?因为它显示的最清楚,不同的对象调用时,返回的结果不同。

JavaScript三种区分对象和数组的方法介绍