2012-02-04 18 views
6

Po awarii Firefoksa (FireBug) po raz 30 podczas debugowania (jestem na Ubuntu), zdecydowałem się użyć Chrome. W przeważającej części jest świetny. Mam tylko jeden duży problem. W FireBug po zalogowaniu się do konsoli zawsze uzyskujesz ciąg znaków reprezentujący obiekt. W rezultacie sensowne było zaimplementowanie toString na większości twoich prototypów, dzięki czemu najważniejsze informacje mogą być wyświetlane za każdym razem, gdy obiekt pojawił się w panelu dewelopera lub konsoli.Chrome devtools console: see toString reprezentacja obiektu?

Jeśli mój kod rejestruje następujące:

console.log(bill_gates); 

Nie chcę pierwszej reprezentacji mojego obiektu w konsoli będzie:

Object 

kiedy może to być:

Person{Bill Gates, Microsoft Founder, dob: Oct 28} 

Nie powinienem był podwójnie rejestrować wszystkiego, aby zrekompensować tę niedogodność:

console.log(bill_gates, bill_gates.toString()); 

Oprócz podwójnego rejestrowania nie pomaga, gdy drążyć obiekt i stwierdzić, że obiekt składa się z innych obiektów, które są oznaczone jako "obiekt".

Wyobraź sobie, że wybierasz się na imprezę, na której każda osoba nazywa się "Person". To, czego chcę, to trochę więcej szczegółów na temat tożsamości tej osoby, być może "Ned Campbell, Realtor" lub "Sue Bradshaw, ubezpieczenia sprzedaży". W FireBug twoje obiekty noszą niestandardowe plakietki identyfikacyjne (w oparciu o twoją implementację toString). W Chrome wszystkie Twoje obiekty noszą plakietki z napisem "Obiekt". Trzeba poświęcić czas na przesłuchanie obiektu (przewiercić jego właściwości i metody), aby dowiedzieć się, z jakim obiektem mamy do czynienia. Co za strata.

To dla mnie NIEZWYKLE niedopatrzenie w projektowaniu znakomitych Chrome Devtools. Czy jest jakiś sposób (może rozszerzenie), aby Devtools pokazywały ciągi reprezentacji obiektów (gdziekolwiek się pojawią) tak, jak robi to FireBug?

Odpowiedz

1

Odnośnie drugiej części pytania: (. W Bugzilla WebKit) tak, istnieje bug złożony przeciwko Web Inspector Zapraszam do CC się na nim (gdy już tam zarejestrowane.)

+0

Nie mówię, że konsola wyświetla niewłaściwy obiekt (jak to opisuje ten błąd), tylko, że pokazuje obiekt jako anonimową rzecz zwaną "Obiektem", a to wcale nie jest pomocne. – Mario

+0

Przepraszamy, źle zrozumiałem pierwotną skargę. IIRC, planowana jest również implementacja formatowania obiektów typu Firebug. Brak ETA, chociaż ... –

+0

Dzięki, Alexander. Warto wiedzieć, że nadchodzi. – Mario

0

W debugerze Eclipse dla Chrome z ChromeDevTools for Java, masz reprezentację toString() (we wszystkich widokach zmiennych/wyrażeń).

Jednak nie masz dostępu do konsoli ani drzewa DOM, tylko do kodu JavaScript.

+0

można wskazać do zrzutu ekranu, który to ilustruje? – Mario

+0

Ponadto, dlaczego odnosi się to do Java, gdy to, co chcę, jest związane z JavaScript? – Mario

+0

Mario, oto pseudo zrzut ekranu: http://code.google.com/p/chromedevtools/wiki/EclipseDebuggerFeatures#ToString "Java" jest częścią nazwy. Debugger jest dla JavaScript (ale jest napisany w Javie). – beefeather

Powiązane problemy