JavaScript中判断一个对象 是否为一个类的实例主要有两种方法,即instanceof和constructor,前者的用法是:
result = object instanceof class
返回一个boolean值,指出对象是否为特定类的一个实例。后者的用法是:
object.constructor
表示创建对象的函数。
两者的区别通过下面的代码可以看出来:
var
a
=
[
1
,
2
,
3
];
alert(a
instanceof
Array);
//
返回true
alert(a
instanceof
Object);
//
返回true
alert(a.constructor
==
Array);
//
返回true
alert(a.constructor
==
Object);
//
返回false
如上可见,constructor更加精确地指向对象所属的类,而对instanceof而言,即使是父类也会返回true。
result = object instanceof class
返回一个boolean值,指出对象是否为特定类的一个实例。后者的用法是:
object.constructor
表示创建对象的函数。
两者的区别通过下面的代码可以看出来:
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
如上可见,constructor更加精确地指向对象所属的类,而对instanceof而言,即使是父类也会返回true。