В Chrome console
объект определяет два метода, которые, кажется, делают одно и то же:
console.log(...)
console.dir(...)
Я где-то читал в Интернете, где dir
перед записью берется копия объекта, тогда как я log
просто передаю ссылку на консоль, а это означает, что к тому времени, когда вы начнете проверять зарегистрированный объект, он может измениться. Однако некоторые предварительные испытания показывают, что нет никакой разницы и что они оба страдают от потенциального отображения объектов в разных состояниях, чем когда они были зарегистрированы.
Попробуйте это в консоли Chrome ( Ctrl+ Shift+ J), чтобы понять, что я имею в виду:
> o = { foo: 1 }
> console.log(o)
> o.foo = 2
Теперь разверните [Object]
ниже оператора log и обратите внимание, что он показывает foo
со значением 2. То же самое верно, если вы повторите эксперимент, используя dir
вместо log
.
Мой вопрос: почему существуют эти две, казалось бы, идентичные функции console
?
console.dir
не изменяется, поэтому оно имеет большое значение.
console.dir()
: эта функция нестандартна ! Так что не используйте его на производстве;)
console.log([1,2])
иconsole.dir([1,2])
вы увидите разницу.