在调试期间(我在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一样显示对象的字符串表示形式(无论它们出现在哪里)?
我并不是说控制台显示错误的对象(就像这个bug描述的那样),只是它将对象显示为一个名为“Object”的匿名对象,并且这根本没有帮助。 – Mario 2012-03-10 15:45:23
对不起,我误解了你原来的投诉。 IIRC,也计划了类似Firebug的对象格式化实现。没有ETA,但... – 2012-03-10 18:08:06
谢谢,亚历山大。知道它即将到来是有用的。 – Mario 2012-03-12 17:07:54