【问题标题】:Assign console.log value to a variable将 console.log 值分配给变量
【发布时间】:2013-03-05 22:07:10
【问题描述】:

如何将 JavaScript 对象分配给使用 console.log 打印的变量?

我在 Chrome 控制台中。使用 Ruby,我将使用 test = _ 访问最近打印的项目。

【问题讨论】:

    标签: javascript ruby console.log language-comparisons


    【解决方案1】:

    这里是chrome reference 用于命令行 api。 有 $_ 变量,但没有打印“返回最近评估的表达式的值”,您可以像这样制作自己的日志函数:

    function log(data){
       console.log(data);
       return data;
    }
    // after that you can access last printed value by $_
    

    请注意,我的功能例如,console.log 可能性要高级得多

    【讨论】:

      【解决方案2】:

      在 Chrome 开发者工具中,您可以通过$_ 访问最后一项:

      > 1+1;
        2
      > $_
        2
      

      【讨论】:

      • 感谢@stewie,但这不适用于由 console.log 打印的对象(+1,因为我不知道此功能)
      【解决方案3】:

      你可以用你自己的覆盖标准console.log()函数,添加你需要的行为:

      console.oldLog = console.log;
      
      console.log = function(value)
      {
          console.oldLog(value);
          window.$log = value;
      };
      
      // Usage
      
      console.log('hello');
      
      $log // Has 'hello' in it
      

      这样,您不必更改现有的日志记录代码。您还可以扩展它,添加一个数组并存储打印对象/值的整个历史记录。

      【讨论】:

      • 一个优雅的解决方案,但也可以捕获警告和错误。我将如何做到这一点?
      • ReferenceError: $log 未定义
      【解决方案4】:

      mirrormx 答案的导数,但更方便。我不需要编写函数,可以随心所欲地把它放在任何地方。

      console.log(window.$log = data);
      

      【讨论】:

        【解决方案5】:

        如果您想对已记录的对象执行此操作(一次性),chrome 控制台提供了一个很好的解决方案。

        将鼠标悬停在控制台中的打印对象上,右键单击,然后单击“存储为全局变量”。 Chrome 会为您分配一个临时 var 名称,您可以在控制台中使用它。

        【讨论】:

        • 这需要更多的支持!一半的答案甚至没有解决实际问题,而这正是它。让我们面对现实吧:覆盖console.log 是一种痛苦,我不记得在之前想要查看这个被记录的东西。
        • 临时变量名称是什么?
        • @coco97 var 名称为 temp,具有自动递增编号(即 temp1、temp2、temp3、...)。
        猜你喜欢
        • 1970-01-01
        • 2014-03-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-04
        • 1970-01-01
        • 2015-04-24
        相关资源
        最近更新 更多