【问题标题】:firefox / chrome console log of functionsfirefox / chrome 控制台功能日志
【发布时间】:2013-07-17 22:31:48
【问题描述】:

通常我使用 ff + firebug,我发现它的控制台功能非常有用:如果你使用 console.log(a_function);您没有看到(恕我直言完全没用的)函数体,而是一个指向定义函数的 js 源文件的链接。

(在https://getfirebug.com/logging 上,他们在“记录对象超链接”段落中进行了描述)

但是,有没有办法在 firefox / chrome “本机”控制台上具有相同的行为?

【问题讨论】:

  • 明确一点:我想要函数体。我喜欢 firebug 所做的:只显示函数名;如果你点击它跳转到函数行的源代码。有没有办法在 chrome / firefox web 控制台中完成此操作?
  • 只是好奇:你为什么需要它?你不喜欢萤火虫?
  • 我喜欢firebug,但有时需要在chrome中调试。
  • 您可以在调试期间修改 Function.prototype.toString,通过嗅探参数,您可以判断 chrome 检查器是否正在调用: if( fnToString(arguments.callee.caller.split("我们不使用字符串")[1]){ ... }
  • 至少在 Chrome 中,在每个 console.log 结果的右侧,它显示文件的名称和它来自的行号。如果您单击它,它会显示它的来源。

标签: javascript firefox google-chrome console firebug


【解决方案1】:

您可以在函数定义中添加console.trace() 甚至console.log() 来跟踪它。像这样的:

function something(){
    var x = 5 +3;
    console.trace();
    console.log("FUNCTION SOMETHING");
    return x;
  }

因此,当它显示在您的 Chrome 控制台工具中时,您可以看到原始文件和行并单击它以获取该文件的源。不如 FF Firebug 雄辩,但它是一个开始。

我不知道您是否可以访问这些函数,并且只是想要一种从控制台转到源文件的简单方法,或者真的不知道函数的来源。但这就是我会做的。查看来源以供参考!

来源:https://developers.google.com/chrome-developer-tools/docs/console-api#consoletrace

【讨论】:

    【解决方案2】:

    在 Chrome 中,如果您将函数放在 console.dir 函数中,您将获得有关该函数的更多信息。然后您可以右键单击该函数并选择“显示函数定义”。

    例子:

    console.dir(my_function);
    

    我在 Firefox 中没有看到任何内容。

    【讨论】:

    • 我不明白为什么这被否决了。它与 Firebug 的流程不完全相同,但它可以让您了解函数定义。 "Show Function Definition" 自 2012 年 8 月 26 日以来一直在 Chrome 中。
    【解决方案3】:

    尝试使用

    console.log("test");
    

    它适用于 ff 和 chrome。

    【讨论】:

    • 这个 sn-p 在 firefox 和 chrome 上做同样的事情,但这不是我想要的。我想要函数定义,可能可以单击以转到编写函数的文件。我不想要字符串。
    【解决方案4】:

    为什么不console.debug(yourfunc.toString());

    【讨论】:

    • 因为 yourfunc.toString() 返回函数的 body。我想要函数的主体。
    • 你说得对 Vito,我不得不阅读更多的 cmets,因为它难以理解。感谢您的反对!
    • 怎么会让人难以理解?这就是我的问题的重点。
    • 不,不是你先发表评论试图解释你在问什么?
    猜你喜欢
    • 1970-01-01
    • 2013-08-18
    • 1970-01-01
    • 1970-01-01
    • 2011-10-14
    • 2021-12-22
    • 2021-04-30
    • 2011-03-28
    相关资源
    最近更新 更多