In ES6, se creo una classe e creo un oggetto di quella classe, come faccio a verificare che l'oggetto sia quella classe?In ES6, come si controlla la classe di un oggetto?
Non riesco a utilizzare solo typeof
perché gli oggetti sono ancora "object"
. Devo solo confrontare i costruttori?
Esempio:
class Person {
constructor() {}
}
var person = new Person();
if (/* what do I put here to check if person is a Person? */) {
// do stuff
}
Yup, completamente dimenticato! Funziona proprio come farebbe con le funzioni (perché le classi sono solo funzioni!). Grazie! – Ivan
questa non è la risposta corretta. se hai classi A, B, C e B & C estende A, allora (nuova B()) instanceof C restituisce true. – someUser
@someUser: 'new B() instanceof A' è la definizione più ragionevole di ereditarietà in javascript. Se stai scoprendo che lo ottieni per 'B' e' C', allora il tuo problema è che hai effettivamente fatto ereditare 'B' da' C' quando non lo avevi intenzione di fare. Come stai implementando la tua eredità? – Eric