В чем разница между console.dir и console.log?

В Chromeconsole объект определяет два метода, которые, кажется, делают то же самое:

console.log(...)
console.dir(...)

Я где-то читал в Интернете, чтоdir берет копию объекта перед регистрацией, тогда какlog просто передает ссылку на консоль, а это означает, что к тому времени, когда вы приступаете к проверке зарегистрированного объекта, он может измениться. Однако некоторое предварительное тестирование показывает, что нет никакой разницы и что они оба страдают от потенциального показа объектов в других состояниях, чем когда они были зарегистрированы.

Попробуйте это в консоли Chrome (Ctrl+Shift+J) чтобы понять, что я имею в виду:

> o = { foo: 1 }
> console.log(o)
> o.foo = 2

Теперь разверните[Object] под оператором журнала и обратите внимание, что он показываетfoo со значением 2. То же самое верно, если вы повторите эксперимент, используяdir вместоlog.

Мой вопрос: почему эти две, казалось бы, одинаковые функции существуют наconsole?

Ответы на вопрос(6)

Ваш ответ на вопрос