(function(){ window.myGlobal=42})();
console.error(myGlobal);
java -jar compiler.jar --jscomp_warning undefinedVars
警告 - 变量 myGlobal 未声明
正如 Rohan 在评论中指出的那样,Closure 编译器认为window.myGlobal
和myGlobal
是不同的东西,即使你和我知道它们实际上是相同的。如果需要在函数中定义它,可以执行以下操作
var myGlobal;
(function() { myGlobal = 42; })();
console.log(myGlobal);
或者,在所有情况下都使用 window
:
window.myGlobal = null;
(function() { window.myGlobal = 42; })();
console.log(window.myGlobal);