Ivan
Ivan

Reputation: 10372

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

In the ES6, if I make a class and create an object of that class, how do I check that the object is that class?

I can't just use typeof because the objects are still "object". Do I just compare constructors?

Example:

class Person {
  constructor() {}
}

var person = new Person();

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

Upvotes: 41

Views: 30082

Answers (2)

galarant
galarant

Reputation: 2019

Just a word of caution, the use of instanceof seems prone to failure for literals of built-in JS classes (e.g. String, Number, etc). In these cases it might be safer to use typeof as follows:

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

Refer to this thread for more info.

Upvotes: 6

Eric
Eric

Reputation: 97601

Can't you do person instanceof Person?

Comparing constructors alone won't work for subclasses

Upvotes: 62

Related Questions