2013-03-17 217 views
16

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

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

回答

13

你可以重写标准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 

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

+0

真棒。谢谢 – Dru 2013-03-17 15:20:17

2

这里是chrome reference命令行API。 有$ _变量,但它“返回最近计算表达式的值”不能打印,你可以这样自己的日志功能:

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

请注意,我的功能,例如,控制台.LOG可能是更先进的

15

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

> 1+1; 
    2 
> $_ 
    2 
+1

感谢@stewie但这不通过的console.log打印对象的工作(+1,因为我不知道这个功能也是如此), – Dru 2013-03-17 15:10:15

2

衍生mirrormx的答案,但更方便。我不需要编写一个函数,只需将它放在任何地方即可。

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

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

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

enter image description here

+0

这需要更多upvotes!一半的答案甚至没有解决实际问题,而这正是它。让我们面对它:重写'console.log'是一种痛苦,我不记得在*想看看这个被记录的东西之前做这件事。 – Thanatos 2017-01-26 19:53:00