我认为它可能与使用PhantomJS的测试有关,测试将因某些console.log
而失败,我需要添加一行:
var console = window.console;
位于IFFE的顶部,例如:
(function() {
var console = window.console;
// ...
}());
这有点奇怪。首先,不是基于webkit的PhatomJS,我认为console
和console.log
都是定义的。
其次,我想如果定义了window.console
,我们使用var console = window.console;
进行设置,那么实际上,如果我们没有定义本地console
,那么console
是遇到,然后浏览器将自动解析为window.console
,因为全局环境为window
?
我认为如果console.log(...)
语句被window.console.log(...)
替换,则不需要var console = window.console;
。
那么为什么行var console = window.console;
需要它以及它有什么帮助解决?
答案 0 :(得分:0)
在定义window.console
的情况下,该行无效。
如果window.console
未定义,则将console
定义为函数范围内的有效标识符。如果没有该行,标识符console
将产生ReferenceError,但window.console
只会让您undefined
。
因此,如果它不是现存标识符,则该行定义console
,或者在它是现存标识符的情况下,它使用全局console
的值。
因此,我们可以得出结论,在您的测试环境中,window.console
未定义。