9

安慰:解決方法爲登錄對象如果執行該代碼在Chrome

var foo = {bar: 'baz'}; 
window.console.log(foo); 
foo.bar = 'bla'; 

控制檯顯示這個不斷擴大的對象之後:

(記錄對象和數組時,它的不是記錄的運行時間值)

此錯誤在一年前已記錄:

http://code.google.com/p/chromium/issues/detail?id=50316

在Chrome中記錄對象是否有解決方法?

+0

一個簡單的解決方案可以是重寫'console.log'和一個克隆和記錄輸入的函數(儘管它可能是一個淺拷貝)。 –

回答

9

我只是在我需要時使用JSON.stringify。不知道它是否會爲你做,但它很容易和有效的調試目的。

這是沒有良好的與壽函數引用的對象,所以如果你需要,我會考慮使用對象的任何一個深拷貝(你可以使用jQuery的優秀extend法)或滾你自己的日誌記錄功能,將在對象上遞歸循環並打印出來。

+0

我也用'JSON.stringify(stuff,true,2)'這將「漂亮地打印」你的輸出。當你的JSON很大或不穩定時很有用。 – coblr

0

您可以使用專用的日誌庫,例如我自己的log4javascript

相關問題