To jest naprawdę podstawowe pytanie naprawdę tylko zaspokoić moją ciekawość, ale czy istnieje sposób, aby zrobić coś takiego:JavaScript instanceof if
if(obj !instanceof Array) {
//The object is not an instance of Array
} else {
//The object is an instance of Array
}
Kluczem tutaj jest w stanie używać NIE! przed instancją. Zazwyczaj sposób muszę skonfigurować to jest tak:
if(obj instanceof Array) {
//Do nothing here
} else {
//The object is not an instance of Array
//Perform actions!
}
i jest to trochę irytujące, aby stworzyć oświadczenie innego kiedy ja po prostu chcę wiedzieć, czy obiekt jest specyficzny typ.
@ hrishikeshp19 - I Jestem pewien, że potrzebujesz parens, po prostu wypróbowałem to w chrome, IE i node, a każdy host ich potrzebował. –
@ riship89 parens są wymagane, dowód: '' !! obj instanceof Array'' zwraca false (niepoprawne), podczas gdy '' !! (obj instanceof Array) 'zwraca true (correct) – zamnuts
Powodem jest to, że! obiekt jest oceniany jako pierwszy jeśli (! obj instanceof Array), który ocenia true (lub false), które następnie staje się jeśli (bool instanceof Array), co jest oczywiście fałszywe. Dlatego zawiń go w nawias, zgodnie z sugestią. – ronnbot