mOxie 未定义,但定义非常明确

mOxie is undefined, yet very clearly defined

我正在拔头发IE9/8;我正在尝试使用 mOxie,但它显示为 undefined,尽管它的定义非常明确。

当我从另一个文件将 mOxie 记录到控制台时,它在 Chrome/IE10+ 中完美记录,但在 IE9/8 中触发相同的脚本记录 undefined.

但是,在 IE9/8 中,当我在控制台中直接键入 'mOxie' 时,它会正确记录对象。

http://jsfiddle.net/vxyayxy8/ -- 运行 在IE10模式下,你会看到它加载了一个对象。 运行 在 IE9 模式下,你会看到它记录 undefined

为什么在 IE9/8 中,当从文件(包含在 mOxie 之后)登录时,它是 undefined,但在直接使用控制台时在 IE9/8 中定义?

请记住,它是在 Chrome 和 IE10+ 中定义的。

为了检验我下面的答案理论,在 IE11 中,但在 IE9 文档模式下,执行 console.log({})——我得到 undefined,它符合问题和答案。你能重现这个吗?

下面的答案仍然是合法的,但显然这是由于 IE 错误造成的,我现在确信该错误已得到修复,所以我正在安装更新并希望一切顺利。谢谢大家的帮助。

我发现在 IE8/9 文档模式下执行 console.log(是的,devtools 已打开)会导致 undefined

我不明白为什么他们将对象记录为未定义,但解决方法是使用 console.dir,这会导致将对象正确记录到控制台。

mOxie 从来就不是 undefined,它只是通过 IE 奇怪的控制台实现方式记录下来。

虽然有人声称该问题无法重现,但我仍然可以得到相同的结果,我每次都进行测试。 http://jsfiddle.net/vxyayxy8/1/ -- 这显示了 log returns undefined, vs dir which returns object.