2012-02-04 42 views
6

在调试期间(我在Ubuntu上)第30次出现Firefox(FireBug)崩溃后,我决定使用Chrome。大多数情况下,这很棒。我只有一个大问题。在FireBug中,当您将某些内容记录到控制台时,您总是可以获取对象的字符串表示形式。因此,在大多数原型上实现toString是很有意义的,只要在开发人员面板或控制台中的任何位置出现对象,就可以显示最重要的信息。Chrome devtools控制台:请参阅对象的toString表示形式?

如果我的代码记录以下:

console.log(bill_gates); 

我不希望我的对象的第一表示在控制台是:

Object 

时,则可能是:

Person{Bill Gates, Microsoft Founder, dob: Oct 28} 

而且我不应该为了弥补这个缺点而重复记录一切:

console.log(bill_gates, bill_gates.toString()); 

除此之外,当您向下钻入一个对象并发现您的对象由所有标记为“对象”的其他对象组成时,双重记录无效。

想象一下,参加每个人的名字胸牌上写着“人物”的派对。我想要的是关于那个人身份的更多细节,可能是“房地产经纪人Ned Campbell”或者“保险销售Sue Bradshaw”。在FireBug中,您的对象会佩戴自定义名称徽章(基于您的toString实现)。在Chrome中,您的所有物品都会佩带名称上的徽章,表示“对象”。你必须花时间询问对象(深入到它的属性和方法),找出你正在处理的对象。真是浪费。

这对我来说是一个重大的监督,否则极好的Chrome Devtools的设计。是否有某种方式(可能是扩展)使Devtools能够像FireBug一样显示对象的字符串表示形式(无论它们出现在哪里)?

回答

1

关于你问题的第二部分:(在WebKit的Bugzilla的)是的,有提起Web检查一个bug随意CC自己就可以了(一旦你已经注册了。)

+0

我并不是说控制台显示错误的对象(就像这个bug描述的那样),只是它将对象显示为一个名为“Object”的匿名对象,并且这根本没有帮助。 – Mario 2012-03-10 15:45:23

+0

对不起,我误解了你原来的投诉。 IIRC,也计划了类似Firebug的对象格式化实现。没有ETA,但... – 2012-03-10 18:08:06

+0

谢谢,亚历山大。知道它即将到来是有用的。 – Mario 2012-03-12 17:07:54

0

在用于Chrome的Eclipse调试器中,从ChromeDevTools for Java, 您有一个toString()表示(在所有变量/表达式视图中)。

但是,您不能从那里访问控制台或DOM树,只能访问JavaScript代码。

+0

你能指出我的截图说明了这一点? – Mario 2012-03-10 15:41:36

+0

此外,为什么这是指Java时,我想要的是JavaScript相关? – Mario 2012-03-10 16:14:13

+0

马里奥,这是一个伪截图: http://code.google.com/p/chromedevtools/wiki/EclipseDebuggerFeatures#ToString “Java”是名称的一部分。该调试器用于JavaScript(但是用Java编写)。 – beefeather 2012-03-26 22:20:09

相关问题