在 ES6 中,如何检查对象的 class?

In ES6, how do you check the class of an object?

在 ES6 中,如果我创建一个 class 并创建一个 class 的对象,我如何检查该对象是 class?

我不能只使用 typeof,因为对象仍然是 "object"。我只是比较构造函数吗?

示例:

class Person {
  constructor() {}
}

var person = new Person();

if ( /* what do I put here to check if person is a Person? */ ) {
  // do stuff
}

你不能person instanceof Person吗?

单独比较构造函数对子类不起作用

请注意,对于内置 JS 类(例如 StringNumber 等)的文字,使用 instanceof 似乎容易失败).在这些情况下,使用 typeof 可能更安全,如下所示:

typeof("foo") === "string";

有关详细信息,请参阅 this thread