在Chrome中,console对象定义了两种似乎做同样事情的方法:
console.log(...)
console.dir(...)
Run Code Online (Sandbox Code Playgroud)
我在网上读到dir了一个在记录它之前获取对象副本的地方,而log只是将引用传递给控制台,这意味着当你去检查你记录的对象时,它可能已经改变了.然而,一些初步测试表明没有区别,并且它们都可能在不同的状态下显示对象,而不是记录它们.
在Chrome控制台(Ctrl+ Shift+ J)中试试这个,看看我的意思:
> o = { foo: 1 }
> console.log(o)
> o.foo = 2
Run Code Online (Sandbox Code Playgroud)
现在,展开[Object]日志语句下方并注意它显示foo的值为2.如果您使用dir而不是重复实验,则同样如此log.
我的问题是,为什么这两个看似相同的函数存在console?
当我从解释器编写Python代码时,我可以键入dir()以获得当前范围中定义的名称列表.当我使用像firebug,chrome console等交互式控制台从浏览器开发Javascript代码时,如何以编程方式获得相同的信息?