这段 JavaScript 代码...
var o = {};
console.dir(o);
o.foo = "bar";
console.dir(o);
...结果会导致相同的交互式树输出显示两次:
这个问题在Stack Overflow上被讨论为一个bug,在Chromium bug和WebKit中也有记录(我想其他地方也是如此)。
我理解实现原因,但它使得调试状态对象变得困难(不使用交互式调试器)。在这种情况下,您在日志调用中需要查看对象的不同状态时,您使用什么策略进行日志记录?JSON.stringify()
?是否有可以使用的序列化控制台方法?
isHash
和isArray
的定义),而且这种方法无法处理已经存在的对象属性(例如函数或正则表达式)或数组上的自定义属性。不过,我没有考虑使用 stringify/parse 来复制一个对象并保留树形结构。这个想法不错。 - Phrogzstringify
的一个问题是它无法处理循环引用。 - Phrogz