È necessario creare l'oggetto nella console stessa, come il riferimento all'oggetto deve essere mantenuto da Chrome. Basta mettere il seguente nella console, invece:
{why:'dont', you:'work?'}
Se si estrae this revision in cui è stata aggiunta la funzione, si dice:
Adding ability to access objects from printed ObjectPropertySections (console, scopes pane and etc.).
Il problema, in base alla mia comprensione, è che console.log
sta emettendo una rappresentazione di stringa dell'oggetto, e semplicemente usando i formattatori di oggetti per visualizzarlo in modo corretto. L'oggetto non esiste più. Quando crei un oggetto tramite la console stessa, Chrome memorizza l'oggetto stesso nella memoria. Se si è in pausa su un punto di interruzione e si dispone di variabili con ambito locale, anche queste possono essere archiviate globalmente perché anch'esse sono in memoria.
Una cosa che si potrebbe fare nel codice, se non hai i riferimenti circolari è:
console.log(JSON.stringify({why:'dont', you:'work?'}));
> {"why":"dont","you":"work?"}
Nella console, copiare l'output e incollarlo in un JSON.parse
chiamata:
JSON.parse('{"why":"dont","you":"work?"}');
> Object {why: "dont", you: "work?"}
La variabile esiste ora in memoria in modo da poterla memorizzare.
fonte
2016-06-01 12:27:18
Grazie! Mi aiuta (nel mio caso dovevo selezionare un iframe) –
brillante, era il numero 2 per me che utilizzavo il debugger nativo – Tope