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

时间:2014-02-26 11:17:53

标签: javascript google-closure-compiler

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

java -jar compiler.jar --jscomp_warning undefinedVars

警告 - 变量myGlobal未声明

1 个答案:

答案 0 :(得分:2)

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

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

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

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