Jeśli w klasie ES6 utworzę klasę i utworzę obiekt tej klasy, w jaki sposób mogę sprawdzić, czy obiekt jest tą klasą?W ES6, jak sprawdzić klasę obiektu?
Nie mogę po prostu użyć typeof
, ponieważ obiekty są nadal "object"
. Czy po prostu porównuję konstruktorów?
Przykład:
class Person {
constructor() {}
}
var person = new Person();
if (/* what do I put here to check if person is a Person? */) {
// do stuff
}
Yup, zupełnie o tym zapomniałem! Działa tak, jak w przypadku funkcji (ponieważ klasy są po prostu funkcjami!). Dzięki! – Ivan
To nie jest poprawna odpowiedź. jeśli masz klasy A, B, C i B & C rozszerza A, to (nowe B()) instanceof C zwraca wartość true. – someUser
@someUser: 'nowy B() instanceof A' jest najrozsądniejszą definicją dziedziczenia w javascript. Jeśli stwierdzasz, że dostajesz to dla 'B' i' C', to twój problem polega na tym, że faktycznie 'B' odziedziczyłeś po' C', kiedy nie masz na to ochoty. W jaki sposób wdrażasz swoje dziedzictwo? – Eric