Jak mogę sprawdzić obiekt w polu alertu? Zwykle alarmowanie obiektu po prostu powoduje wyświetlenie nazwy węzła:
alert(document);
Ale chcę uzyskać właściwości i metody obiektu w polu alertu. Jak mogę osiągnąć tę funkcjonalność, jeśli to możliwe? Czy są jakieś inne sugestie?
W szczególności szukam rozwiązania dla środowiska produkcyjnego, w którym nie są dostępne console.log i Firebug.
javascript
object
inspect
Valentina
źródło
źródło
console.log
na Firefox lub ChromeJSON.stringify
jest pomocny.Odpowiedzi:
for
-in
pętli dla każdej usługi na przedmiocie lub macierzy. Możesz użyć tej właściwości, aby uzyskać wartość, a także ją zmienić.Uwaga: Prywatne nieruchomości nie są dostępne do wglądu, chyba że używasz „szpiega”; w zasadzie nadpisujesz obiekt i piszesz kod, który wykonuje pętlę for-in wewnątrz kontekstu obiektu.
Bo w wygląda tak:
Przykładowy kod:
Edycja: Jakiś czas temu napisałem do własnego inspektora, jeśli jesteś zainteresowany, chętnie się podzielę.
Edycja 2: Cóż, i tak je napisałem.
źródło
A co
alert(JSON.stringify(object))
z nowoczesną przeglądarką?W przypadku
TypeError: Converting circular structure to JSON
, oto więcej opcji: Jak serializować węzeł DOM do JSON, nawet jeśli istnieją odwołania cykliczne?Dokumentacja:
JSON.stringify()
zawiera informacje na temat formatowania lub upiększania wyniku.źródło
alert(JSON.stringify(object, null, 4)
gdzie4
jest liczba spacji użytych do wcięcia.stringify
nie pokaże sposoby:JSON.stringify({f: ()=>{}}) => "{}"
. Ponadto, jeśli obiekt implementujetoJSON
metody masz co to powraca metoda, która jest bezużyteczna, jeśli chcesz sprawdzić obiektu:JSON.stringify({toJSON: () => 'nothin'}) => '"nothin"'
.Użyj
console.dir(object)
i wtyczki Firebugźródło
console.dir
funkcji. Nie mogłem zrozumieć, dlaczego nie mogę już wyświetlić całego obiektu w Firebug. Teraz to dla mnie załatwiło. Dzięki!console.log
oprócz wygody wyświetlania są inne zalety tego rozwiązania, proszęJest kilka metod:
W kontekście konsoli czasami przydatne mogą być pliki .constructor lub .prototype:
źródło
Użyj swojej konsoli:
Lub, jeśli przeglądasz elementy html dom, użyj console.dir (obiekt). Przykład:
Lub jeśli masz tablicę obiektów js, możesz użyć:
Jeśli wypisujesz dużo danych console.log (obiektów), możesz także pisać
Pomoże ci to oznaczyć obiekty zapisane na konsoli.
źródło
console
ponieważ używam stylizacji stackoverflow.com/q/7505623/1480391 i nie jest to zgodneźródło
To rażące zdzierstwo doskonałej odpowiedzi Christiana. Właśnie uczyniłem to nieco bardziej czytelnym:
źródło
Oto mój inspektor obiektów, który jest bardziej czytelny. Ponieważ zapisanie kodu tutaj zajmuje dużo czasu, możesz go pobrać ze strony http://etto-aa-js.googlecode.com/svn/trunk/inspector.js
Użyj w ten sposób:
źródło