W jaki sposób $ ('h1') loguje się do konsoli internetowej jako tablica w jQuery?
Jeśli zrobiszconsole.log($('some selector'))
w przeglądarce zwraca to, co wygląda jak tablica (pierwsza linia):
Ale zauważ, że to nie jestinstanceof Array
, ale tak naprawdę jestjQuery
obiekt.
Kiedy to zrobiszconsole.dir($('h1'))
, pokazuje, że faktycznie jest to obiekt jQuery.
Pytanie brzmi, jak to sprawia, że wygląda jak tablica w konsoli internetowej? Zauważyłem w źródle jQuerytutaj dodają odwołanie do kilku metod Array i Object, oraztutaj dodajątoArray
(i pokroić i inne) dojQuery
obiekt. Czy konsola internetowa w jakiś sposób sprawdza te metody i jeśli je znajdzie (toArray
, indexOf
, slice
itd.), wypisuje go jako tablicę? Chciałbym usunąć to zachowanie z dowolnego obiektu niestandardowego, takiego jakEmber.ArrayProxy
. Obecnie po zalogowaniu sięEmber.ArrayProxy
to pokazuje> Object
lub cokolwiek, ale byłoby miło pokazać go jako tablicę.
Jakieś pomysły?