【问题标题】:Workaround for logging objects to console in Chrome在 Chrome 中将对象记录到控制台的解决方法
【发布时间】:2011-11-23 05:29:39
【问题描述】:

如果你执行这段代码:

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

扩展对象后控制台显示如下:

(记录对象和数组时,记录的不是运行时值)

一年多以前就记录了这个错误:

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

是否有在 Chrome 中记录对象的解决方法?

【问题讨论】:

  • 一个简单的解决方案是覆盖 console.log 并使用克隆和记录输入的函数(尽管它可能是浅拷贝)。

标签: javascript debugging google-chrome console google-chrome-devtools


【解决方案1】:

我只在需要时使用JSON.stringify。不知道它是否会为你做,但它对于调试目的来说既简单又有效。

这对于其中包含函数引用的对象没有好处,因此如果您需要,我会考虑使用对象的深层副本(您可以使用 jQuery 出色的 extend 方法)或滚动您自己的日志记录函数将在对象上递归循环并打印出来。

【讨论】:

  • 我还使用了JSON.stringify(stuff, true, 2),它将“漂亮地打印”您的输出。当您的 JSON 很大或不规则时很有用。
【解决方案2】:

您可以使用专用的日志记录库,例如我自己的 log4javascript

【讨论】:

    猜你喜欢
    • 2020-07-30
    • 1970-01-01
    • 2023-03-18
    • 2012-11-19
    • 2017-08-22
    • 2011-04-20
    • 2018-07-31
    • 1970-01-01
    相关资源
    最近更新 更多