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

时间:2015-03-08 02:33:02

标签: javascript ecmascript-6

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

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

示例:

class Person {
  constructor() {}
}

var person = new Person();

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

2 个答案:

答案 0 :(得分:57)

你不能person instanceof Person吗?

单独比较构造函数不会为子类工作

答案 1 :(得分:7)

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

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

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