如何为谷歌闭包编译器声明全局变量


(function(){ window.myGlobal=42})();
console.error(myGlobal);

java -jar compiler.jar --jscomp_warning undefinedVars

警告 - 变量 myGlobal 未声明

正如 Rohan 在评论中指出的那样,Closure 编译器认为window.myGlobalmyGlobal是不同的东西,即使你和我知道它们实际上是相同的。如果需要在函数中定义它,可以执行以下操作

var myGlobal;
(function() { myGlobal = 42; })();
console.log(myGlobal);

或者,在所有情况下都使用 window

window.myGlobal = null;
(function() { window.myGlobal = 42; })();
console.log(window.myGlobal);

最新更新