(function(){ window.myGlobal=42})();
console.error(myGlobal);
java -jar compiler.jar --jscomp_warning undefinedVars
警告 - 变量myGlobal未声明
答案 0 :(得分:2)
正如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);