【问题标题】:Chrome devtools console: see toString representation of an object?Chrome devtools 控制台:查看对象的 toString 表示?
【发布时间】:2012-02-26 21:57:07
【问题描述】:

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

如果我的代码记录以下内容:

console.log(bill_gates);

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

Object

什么时候可以:

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

而且我不应该重复记录所有内容来弥补这个缺点:

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

除了当您深入到一个对象并发现您的对象由所有标记为“对象”的其他对象组成时,双重记录也无济于事。

想象去参加一个每个人的名牌都写着“Person”的聚会。我想要的是有关此人身份的更多详细信息,可能是“Ned Campbell,房地产经纪人”或“Sue Bradshaw,保险销售”。在 FireBug 中,您的对象佩戴自定义名称徽章(基于您的 toString 实现)。在 Chrome 中,您的所有对象都带有名称徽章,上面写着“对象”。您必须花时间询问对象(深入了解它的属性和方法)以找出您正在处理的对象。真是浪费。

对我来说,这是对原本出色的 Chrome Devtools 设计的重大疏忽。有什么方法(可能是扩展)让 Devtools 像 FireBug 那样显示对象的字符串表示(无论它们出现在哪里)?

【问题讨论】:

    标签: google-chrome logging firebug google-chrome-devtools


    【解决方案1】:

    关于您问题的第二部分:是的,有一个针对 Web Inspector 的 bug(在 WebKit bugzilla 中)。请随意抄送自己(一旦您在那里注册)。

    【讨论】:

    • 我并不是说控制台显示了错误的对象(正如这个错误所描述的那样),只是它将对象显示为一个名为“对象”的匿名事物,这根本没有帮助.
    • 对不起,我误解了您最初的投诉。 IIRC,类似 Firebug 的对象格式化实现也在计划中。不过没有预计到达时间...
    • 谢谢,亚历山大。知道它即将到来是很有用的。
    【解决方案2】:

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

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

    【讨论】:

    • 另外,当我想要的与 JavaScript 相关时,为什么这指的是 Java?
    • Mario,这是一个伪截图:code.google.com/p/chromedevtools/wiki/…“Java”是名称的一部分。调试器用于 JavaScript(但用 Java 编写)。
    猜你喜欢
    • 1970-01-01
    • 2013-05-23
    • 2022-10-25
    • 1970-01-01
    • 1970-01-01
    • 2013-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多