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