2013-03-17 19 views
16

Wie kann ich einer Variablen, die mit console.log gedruckt wurde, ein JavaScript-Objekt zuweisen?Zuweisen von console.log-Wert zu einer Variablen

Ich bin in der Chrome-Konsole. Mit Ruby würde ich test = _ verwenden, um auf das zuletzt gedruckte Element zuzugreifen.

Antwort

13

könnten Sie überschreiben Standard console.log() Funktion mit Ihrem eigenen, dem Verhalten yo Hinzufügen Sie benötigen:

console.oldLog = console.log; 

console.log = function(value) 
{ 
    console.oldLog(value); 
    window.$log = value; 
}; 

// Usage 

console.log('hello'); 

$log // Has 'hello' in it 

Auf diese Weise müssen Sie Ihren vorhandenen Protokollierungscode nicht ändern. Sie können es auch erweitern, indem Sie ein Array hinzufügen und die gesamte Historie gedruckter Objekte/Werte speichern.

+0

ehrfürchtig (+1, weil ich nicht über diese Funktion wusste). Danke – Dru

2

Hier ist chrome reference für comand line api. Es gibt Variable $ _ aber es „Gibt den Wert des zuletzt ausgewerteten Ausdrucks“ nicht gedruckt werden, können Sie Ihre eigene Log-Funktion wie folgt machen:

function log(data){ 
    console.log(data); 
    return data; 
} 
// after that you can access last printed value by $_ 

Bitte beachten Sie, dass meine Funktion ist zum Beispiel, Konsolen- .log Möglichkeiten sind viel weiter fortgeschritten

15

In Chrome-Entwickler-Tool, können Sie letztes Element zugreifen, indem $_:

> 1+1; 
    2 
> $_ 
    2 
+1

Dank @stewie aber das funktioniert nicht für Objekte, die von console.log gedruckt – Dru

2

Derivat von mirrormx's Antwort, aber bequemer. Ich muss keine Funktion schreiben und kann sie einfach spontan einfügen.

10

Wenn Sie dies mit einem Objekt tun möchten, das bereits protokolliert wurde (einmalige Sache), bietet die Chrome-Konsole eine gute Lösung.

Bewegen Sie den Mauszeiger über das gedruckte Objekt in der Konsole, klicken Sie mit der rechten Maustaste und klicken Sie dann auf "Als globale Variable speichern". Chrome weist ihm einen temporären var-Namen zu, den Sie in der Konsole verwenden können.

enter image description here

+0

Das braucht mehr upvotes! Die Hälfte der Antworten geht nicht einmal auf die eigentliche Frage ein, und genau das ist es. Seien wir ehrlich: das Überschreiben von "console.log" ist ein Schmerz, und ich erinnerte mich nicht daran, das * vor * zu tun, als ich mir das Ding ansehen wollte, das eingeloggt war. – Thanatos

Verwandte Themen