В чем разница между 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
?