In der ES6, wenn ich eine Klasse erstellen und ein Objekt dieser Klasse erstellen, wie überprüfe ich, ob das Objekt diese Klasse ist?In ES6, wie überprüfen Sie die Klasse eines Objekts?
Ich kann nicht einfach typeof
verwenden, weil die Objekte immer noch "object"
sind. Vergleiche ich nur Konstruktoren?
Beispiel:
class Person {
constructor() {}
}
var person = new Person();
if (/* what do I put here to check if person is a Person? */) {
// do stuff
}
Yup, völlig vergessen, dass! Es funktioniert genauso wie mit Funktionen (weil die Klassen nur Funktionen sind!). Vielen Dank! – Ivan
das ist nicht die richtige Antwort. Wenn Sie A-, B- und C-Klassen haben und B & C A erweitert, dann liefert (neue B()) -Instanz von C den Wert true. – someUser
@someUser: 'neue B() instanceof A' ist die vernünftigste Definition der Vererbung in Javascript. Wenn Sie feststellen, dass Sie das für "B" und "C" bekommen, dann ist Ihr Problem, dass Sie tatsächlich "B" von "C" erben ließen, wenn Sie nicht vorhatten. Wie implementieren Sie Ihre Erbschaft? – Eric