在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.log([1,2])
,console.dir([1,2])
您将看到区别。