Как я могу изменить поведение по умолчанию console.log в Safari? - PullRequest
144 голосов
/ 12 сентября 2011

В Safari без надстроек console.log покажет объект в последнем состоянии выполнения, а не в состоянии, когда был вызван console.log.

Мне нужно клонировать объект только для того, чтобывыведите его через console.log, чтобы получить состояние объекта в этой строке.

Пример:

var test = {a: true}
console.log(test); // {a: false}
test.a = false; 
console.log(test); // {a: false}

Ответы [ 11 ]

0 голосов
/ 22 апреля 2014

Я могу быть застрелен за то, что предложил это, но это может быть сделано еще на один шаг вперед.Мы можем напрямую расширить объект консоли, чтобы сделать его более понятным.

console.logObject = function(o) {
  (JSON.stringify(o));
}

Я не знаю, вызовет ли это какой-либо тип столкновения библиотеки / ядерного расплавления / разрыва в континууме пространства-времени.Но это прекрасно работает в моих тестах qUnit.:)

...