在 Chrome 中将对象记录到控制台的解决方法
Posted
技术标签:
【中文标题】在 Chrome 中将对象记录到控制台的解决方法【英文标题】:Workaround for logging objects to console in 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
并使用克隆和记录输入的函数(尽管它可能是浅拷贝)。
【参考方案1】:
我只在需要时使用JSON.stringify
。不知道它是否会为你做,但它对于调试目的来说既简单又有效。
这对于其中包含函数引用的对象没有好处,因此如果您需要,我会考虑使用对象的深层副本(您可以使用 jQuery 出色的 extend
方法)或滚动您自己的日志记录函数将在对象上递归循环并打印出来。
【讨论】:
我还使用了JSON.stringify(stuff, true, 2)
,它将“漂亮地打印”您的输出。当您的 JSON 很大或不规则时很有用。【参考方案2】:
您可以使用专用的日志记录库,例如我自己的 log4javascript。
【讨论】:
以上是关于在 Chrome 中将对象记录到控制台的解决方法的主要内容,如果未能解决你的问题,请参考以下文章
声明之前在 Google Chrome 控制台中记录的 Javascript 对象属性 [重复]
您可以在asp.net mvc中将复杂对象从表单发布到控制器吗
最新版chrome浏览器安装Chrome插件时出现"CRX-HEADER-INVALID"解决方法