在 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
?