将console.log值分配给变量

Dru*_*Dru 21 javascript console.log

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

我在Chrome控制台中.使用Ruby我会test = _用来访问最新打印的项目.

Nic*_*ady 23

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

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

在此输入图像描述

  • 这需要更多的投票!一半的答案甚至都没有解决实际的问题,这就是事实。让我们面对现实:覆盖`console.log`是一件很痛苦的事,而且我不记得在想看这个被记录的东西之前做过。 (2认同)
  • @coco97 var 名称是带有自动递增数字的“temp”(即“temp1”、“temp2”、“temp3”,...)。 (2认同)

mir*_*rmx 17

您可以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
Run Code Online (Sandbox Code Playgroud)

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

  • 这是一个优雅的解决方案,但如果能捕获警告和错误也很好。我将如何实现这一目标? (2认同)

Ste*_*wie 15

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

> 1+1;
  2
> $_
  2
Run Code Online (Sandbox Code Playgroud)

  • 感谢@stewie,但这不适用于console.log打印的对象(+1,因为我不知道此功能) (2认同)

小智 5

mirrormx 答案的衍生物,但更方便。我不需要编写一个函数,可以一时冲动把它放在任何地方。

console.log(window.$log = data);
Run Code Online (Sandbox Code Playgroud)