(function(){ window.myGlobal=42})();
console.error(myGlobal);
Java的罐子compiler.jar --jscomp_warning undefinedVars如何爲google閉包編譯器聲明全局變量?
警告 - 可變myGlobal是未申報
(function(){ window.myGlobal=42})();
console.error(myGlobal);
Java的罐子compiler.jar --jscomp_warning undefinedVars如何爲google閉包編譯器聲明全局變量?
警告 - 可變myGlobal是未申報
由於羅漢在評論中指出的,封編譯器認爲的window.myGlobal
和myGlobal
不同的東西,連儘管你和我知道他們實際上是一樣的。如果你需要將它定義一個函數裏面,你可以做在所有情況下類似
var myGlobal;
(function() { myGlobal = 42; })();
console.log(myGlobal);
,或者使用window
:
window.myGlobal = null;
(function() { window.myGlobal = 42; })();
console.log(window.myGlobal);
你的第一個解決方案是最優雅的一個,謝謝你的想法! – Tom
是的,謝謝你的想法,儘管這仍然不是一種將變量聲明爲全局變量的方法(例如,在另一個JS文件中聲明閉包編譯器不用於編譯)。 –
你嘗試console.error(window.myGlobal)? – Rohan
當然,它是有效的,但目標是不必以「窗口」作爲前綴。 – Tom
請參閱[本文](https://developers.google.com/closure/compiler/docs/limitations) – Rohan