【问题标题】:JavaScript debugging in Chrome — toString doesn't give me what I needChrome 中的 JavaScript 调试——toString 没有给我我需要的东西
【发布时间】:2012-04-03 05:54:37
【问题描述】:

正如答案in this question 建议的那样,您可以覆盖对象上的toString() 方法以在调试期间(至少)提供有用的信息。这在 Firebug 中运行良好,但在 Chrome 中完全没有帮助:

x = { toString: function () { return 'test' } }

提供了非常有用的输出:

Object

在 Firebug 中它要好得多:

test { toString=function()}

我知道 Chrome 允许我检查对象属性。这很有用,但让对象标题列出至少几个最重要的属性要容易得多,这样您就不必为了找出一个值而挖掘复杂对象的 50 个属性。

那么,是否有可能让 Chrome 中的调试输出更有用?

编辑

这就是我想要实现的目标:

v  [result of ???() on x]
    a: 1
    b: 'foo'
  v c: [result of ???() on x.c]
      foo: 'bla bla bla'
    > bar: [result of ???() on x.c.bar]

【问题讨论】:

  • 为什么不用console.log()
  • @SheikhHeera:这对我的问题有什么帮助?
  • @doublep:你为什么不专门称呼它? console.log(x.toString()),如果您想添加可扩展版本,请在其后立即添加console.log(x)。这会有帮助吗?
  • @Tadeck:不多。在这个用例中toString() 根本没有任何作用,当我检查x 的属性时,它们并没有很好地打印出来,同样是无用的Object
  • @doublep:你能进一步解释一下吗?您正在尝试将x.toString() 结果与对象表示一起显示,但您也说toString() 对您没有任何作用。是你关心的主要对象的属性表示吗?

标签: javascript google-chrome


【解决方案1】:

你可以这样使用它:

console.log(x.toString(), x)

它将在同一行中为您提供x.toString() 的结果和x 的可扩展表示。

【讨论】:

  • 当我扩展打印为Objectx 时,无论属性值是否实现toString()Object 的属性都是无用的。这没有有用。您基本上告诉了我如何手动调用方法。
猜你喜欢
  • 1970-01-01
  • 2013-08-08
  • 1970-01-01
  • 2018-04-21
  • 1970-01-01
  • 1970-01-01
  • 2018-01-16
  • 2011-06-10
  • 1970-01-01
相关资源
最近更新 更多