У Chrome console
об’єкт визначає два методи, які, здається, роблять те саме:
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
?
console.dir
, не змінюється, тому це робить велику різницю.
console.dir()
: ця функція нестандартна ! Тому не використовуйте його на виробництві;)
console.log([1,2])
іconsole.dir([1,2])
ви побачите різницю.