在Chrome中,console
对象定义了两个似乎做相同事情的方法:
console.log(...)
console.dir(...)
我在网上读到,dir
在记录之前获取对象的副本,而log
只是将引用传递给控制台,这意味着当你去检查你记录的对象时,它可能已经改变了。然而,一些初步测试表明,两者之间并没有什么区别,而且它们都可能会显示与记录时不同的对象状态。
在Chrome控制台(Ctrl+转变+J)中试试这个,看看我的意思:
> o = { foo: 1 }
> console.log(o)
> o.foo = 2
现在,展开日志语句下面的[Object]
,注意它显示了值为2的foo
。如果你用dir
而不是log
重复这个实验,情况也是一样的。
我的问题是,为什么这两个看似相同的函数存在于console
上?