2013-03-17 262 views
16

如何將JavaScript對象分配給使用console.log打印的變量?將console.log值賦給變量

我在Chrome控制檯中。使用Ruby,我會使用test = _來訪問最近打印的項目。

回答

13

你可以重寫標準console.log()功能與自己的,添加行爲喲您需要:

console.oldLog = console.log; 

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

// Usage 

console.log('hello'); 

$log // Has 'hello' in it 

這樣,您不必更改現有的日誌記錄代碼。您還可以擴展它,添加一個數組並存儲打印對象/值的整個歷史記錄。

+0

真棒。謝謝 – Dru 2013-03-17 15:20:17

2

這裏是chrome reference命令行API。 有$ _變量,但它「返回最近計算表達式的值」不能打印,你可以這樣自己的日誌功能:

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

請注意,我的功能,例如,控制檯.LOG可能是更先進的

15

在Chrome開發者工具,可以通過$_訪問最後一個項目:

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

感謝@stewie但這不通過的console.log打印對象的工作(+1,因爲我不知道這個功能也是如此), – Dru 2013-03-17 15:10:15

2

衍生mirrormx的答案,但更方便。我不需要編寫一個函數,只需將它放在任何地方即可。

console.log(window.$log = data); 
10

如果您想對已經記錄的對象(一次性事物)執行此操作,則Chrome控制檯提供了一個很好的解決方案。

將鼠標懸停在控制檯中的打印對象上,右鍵單擊,然後單擊「存儲爲全局變量」。 Chrome會將其分配給您可以在控制檯中使用的臨時var名稱。

enter image description here

+0

這需要更多upvotes!一半的答案甚至沒有解決實際問題,而這正是它。讓我們面對它:重寫'console.log'是一種痛苦,我不記得在*想看看這個被記錄的東西之前做這件事。 – Thanatos 2017-01-26 19:53:00