在 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 类(例如 String
、Number
等)的文字,使用 instanceof
似乎容易失败).在这些情况下,使用 typeof
可能更安全,如下所示:
typeof("foo") === "string";
有关详细信息,请参阅 this thread。
在 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 类(例如 String
、Number
等)的文字,使用 instanceof
似乎容易失败).在这些情况下,使用 typeof
可能更安全,如下所示:
typeof("foo") === "string";
有关详细信息,请参阅 this thread。