Javascript Chrome控制台在log()中显示什么?
我想我可能在谷歌Chrome上发现了一个bug(16.0.912.75m,在撰写本文时的最新版本) 如果在Firefox中运行该块,它会将两者都显示为“Object”,第二个块的type=local,非常好。但如果你在Chrome上运行它,它就会显示出来Javascript Chrome控制台在log()中显示什么?,javascript,google-chrome,webkit,google-chrome-devtools,Javascript,Google Chrome,Webkit,Google Chrome Devtools,我想我可能在谷歌Chrome上发现了一个bug(16.0.912.75m,在撰写本文时的最新版本) 如果在Firefox中运行该块,它会将两者都显示为“Object”,第二个块的type=local,非常好。但如果你在Chrome上运行它,它就会显示出来 > FakeFancy > globalConstructor.type 如果展开树,则内容是正确的。但我不知道Chrome在记录的每个对象的第一行中列出了什么。因为我没有操作原型,所以这些应该是普通的旧对象,不会从任何地方继承
> FakeFancy
> globalConstructor.type
如果展开树,则内容是正确的。但我不知道Chrome在记录的每个对象的第一行中列出了什么。因为我没有操作原型,所以这些应该是普通的旧对象,不会从任何地方继承
起初,我认为它与WebKit相关,但我在最新的SafariforWindows(5.1.27534.52.7)中进行了尝试,两者都显示为“对象”
我怀疑它试图对调用构造函数的位置进行一些猜测。匿名构造函数的间接寻址是否把它搞砸了?第一行是
console.log(new FakeFancy());
WebKit控制台通常会尝试进行“构造函数名称推断”,让您知道它输出的对象的类型。我的猜测是,Chrome附带的较新版本(与Safari 5.1相反)可以对构造函数声明进行推断,如
var FakeFancy = function () {};
不仅仅是像这样的人
function FakeFancy() {}
这就是为什么您会看到这种差异。如果您的问题只是关于前两行及其输出,为什么还要包含这么多额外的代码?(“但我不知道Chrome的第一行是什么。”)我一定是误解了……抱歉,添加了一个清晰的编辑。记录的每个对象的第一行。
function FakeFancy() {}