Deo zbornika Napredni Javaskript
Ispitivanje tipa objekta
Kao što možemo videti, operator typeof
vraća tip “objekat” i za niz:
// niz
const nizBrojeva = [1, 2, 3, 4, 5]
console.log(typeof nizBrojeva)
// objekat
const stolica = {
brojNogu: 4,
nova: false
}
console.log(typeof stolica)
Kako možemo razlikovati objekat i niz? Možemo da pozovemo metod Object.prototype.toString()
na željenom objektu. Dobićemo naziv klase koja se koristi za kreiranje objekta:
const nizBrojeva = [1, 2, 3, 4, 5]
const stolica = {
brojNogu: 4,
nova: false
}
console.log(Object.prototype.toString.call(nizBrojeva))
console.log(Object.prototype.toString.call(stolica))
Možemo takođe ispitati DOM elemente na isti način:
Object.prototype.toString.call(document.body) // [object HTMLBodyElement]
Neophodno je pozvati metod toString()
, koji je definisan u prototipu konstruktora Object
. Ako pozovemo metodu niza toString()
, dobićemo drugačiji rezultat, prilagođen za specifičnu namenu.
Literatura
- Ved Antani, Stojan Stefanov, Objektno-orjentisan JavaScript, Beograd, 2017.