在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
}
答案 0 :(得分:57)
你不能person instanceof Person
吗?
单独比较构造函数不会为子类工作
答案 1 :(得分:7)
请注意,使用instanceof
似乎很容易导致内置JS类的文字失败(例如String
,Number
等)。在这些情况下,使用typeof
可能更安全,如下所示:
typeof("foo") === "string";
有关详细信息,请参阅this thread。