2013-03-17 2 views
16

Как я могу присвоить объект JavaScript переменной, которая была напечатана с использованием console.log?Назначить значение console.log переменной

Я в консоли Chrome. С Ruby я бы использовал test = _ для доступа к последнему напечатанному товару.

ответ

13

вы можете переопределить стандартную console.log() функции с вашим собственным, добавив поведение йа u необходимо:

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

2

Это chrome reference для comand line 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

2

Производящий ответ mirrormx, но более удобный. Мне не нужно писать функцию, и я могу просто поместить ее в любую точку на данный момент.

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

Если вы хотите сделать это с объектом, который уже был зарегистрирован (одно время), хром-консоль предлагает хорошее решение.

Наведите указатель мыши на напечатанный объект в консоли, щелкните правой кнопкой мыши, затем нажмите «Сохранить как глобальную переменную». Chrome назначит его временному имени var для вас, которое вы можете использовать в консоли.

enter image description here

+0

Это нужно больше upvotes! Половина ответов даже не затрагивает фактический вопрос, и это именно так. Посмотрим правде в глаза: переопределение «console.log» - это боль, и я не забывал это делать до того, как вы захотите посмотреть на эту вещь, которая была зарегистрирована. – Thanatos

Смежные вопросы