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

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

下面介绍三种方法:

1:constructor

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

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


2:instanceof

A instanceof  B 判断A的原型链上面有没有B的原型

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



3 Object.prototype.toString.call()


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

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





猜你喜欢

转载自blog.csdn.net/wust_cyl/article/details/79887026
今日推荐