在调试期间第30次Firefox(FireBug)崩溃后(我在Ubuntu上),我决定使用Chrome。在大多数情况下,这很棒。我只是一个大问题。在FireBug中,当您将某些内容记录到控制台时,您始终会获得该对象的字符串表示形式。因此,在大多数原型上实现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那样?
答案 0 :(得分:1)
关于你问题的第二部分:是的,有一个针对Web Inspector的bug提交(在WebKit bugzilla中)。你可以随意给自己CC(一旦你在那里注册了。)
答案 1 :(得分:0)
在ChromeDevTools for Java的Chrome调试器中,
你有一个toString()
表示(在所有变量/表达式视图中)。
但是,您无法从那里访问控制台或DOM树,只能访问JavaScript代码。