JS如何判断一个对象是否为一个类的实例

1,442 阅读1分钟

JavaScript中判断一个对象是否为一个类的实例主要有两种方法,即instanceof和constructor。

instanceof的用法是:

var result = object instanceof class

返回一个boolean值,指出对象是否为特定类的一个实例。


constructor的用法是:

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。

再看一个案例:

function Person(name,age,job){ 
    this.name = name; 
    this.age = age; 
    this.job = job;
    this.sayName = function(){ 
        console.log(this.name) 
    }
}
var person1 = new Person('张三','23','teacher'); 
console.log(person1.constructor === Person); // true