我认为这可能与使用 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;需要这条线,它有助于解决什么问题?