Zazwyczaj, gdy chcę sprawdzić typ obiektu (czy jest to tablica, o NodeList, lub cokolwiek), używam następujące:Dlaczego `` .toString.apply (tablica) `nie działa?
var arr = [] // I don't do this, but it's for the sake of the example
var obj = {}
obj.toString.apply(arr) // This works
Pytanie brzmi: dlaczego nie mogę zrobić następujące?
var arr = []
{}.toString.apply(arr) // Syntax error: Unexpected token .
Nie wiem, gdzie jest błąd składni.
mogę zrobić coś zbliża się []
choć następujących prac:
var nodeList = document.getElementsByClassName('foo')
[].forEach.call(nodeList, function(bar) { console.log(bar) }) // Works
Więc ... Jestem zdezorientowany.
zapomniałeś() w toString()? – kappa
Nie, patrz odpowiedź @Ray Toal. Dodanie nawiasu prowadziłoby do błędu składni (obiekt nie ma metody "zastosuj"). –
Ahh .. nie myślałem, że to jest poprawne – kappa