我认为这可能与使用 PhantomJS 的测试有关,测试会由于某些原因而失败console.log
,我需要写一行:
var console = window.console;
在 IFFE 内部的顶部,例如:
(function() {
var console = window.console;
// ...
}());
这有点奇怪。首先,PhatomJS 是不是基于 webkit 的,和我想的一样console
,console.log
都是定义的。
其次,我以为 ifwindow.console
是定义的,其实我们是用var console = window.console;
then 来设置的,如果我们没有定义 local console
,当console
遇到时,浏览器会自动解析到,window.console
因为全局环境是window
?
我认为如果console.log(...)
语句被替换,window.console.log(...)
那么var console = window.console;
就不需要了。
那么为什么var console = window.console;
需要这条线,它有助于解决什么问题?