构造函数和 instanceof 有什么不同?- 实例和构造函数的区别

10 min read

constructor是一个特殊的方法,用于创建和初始化类中的对象。它可以用来检查一个对象是否属于特定的类。instanceof运算符则用于检查一个对象是否属于某个类的实例。它返回一个布尔值,如果对象是该类的实例则返回true,否则返回false。

下面是一个示例:

class Person {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }
}

const person1 = new Person('John', 30);

console.log(person1.constructor === Person); // 输出 true,因为 person1 是由 Person 类创建的。
console.log(person1 instanceof Person); // 输出 true,因为 person1 是 Person 类的实例。

在这个例子中,我们创建了一个Person类,并使用constructor方法初始化了对象person1。然后,我们使用constructor属性检查person1是否由Person类创建。最后,我们使用instanceof运算符检查person1是否是Person类的实例。