我遇到了谷歌封閉JavaScript編譯器與高級優化問題。由於文檔建議,爲了保持出口的Javascript我做這樣的事情:谷歌封閉編譯器的高級優化不優化一些變量
var myClass = function() {
this["myFunc"] = this.myFunc;
this["myFunc2"] = this.myFunc2;
};
window["myClass"] = myClass;
myClass.prototype = {
myFunc: function() { alert("myFunc"); },
myFunc2: function() { alert("myFunc2"); }
};
的問題是,有時,無論出於何種原因,myFunc
和myFunc2
沒有得到縮短,我看到這樣的代碼在最後輸出:
x.myFunc=x.myFunc;x.myFunc2=x.myFunc2;
這顯然不太理想。
我該如何防止這種情況發生?
進一步的實驗已經表明,有一定的關鍵字,例如'get'不會被編譯。
var myClass = function() {
this["get"] = this.get;
this["myFunc2"] = this.myFunc2;
};
window["myClass"] = myClass;
myClass.prototype = {
get: function() { alert("myFunc"); },
myFunc2: function() { alert("myFunc2"); }
};
編譯成
function a() {
this.get = this.get;
this.myFunc2 = this.a
}
window.myClass = a;
a.prototype = {get:function() {
alert("myFunc")
}, a:function() {
alert("myFunc2")
}};
我仍然不知道,雖然是什麼導致了它。
請參閱更新。 –
我擴展了我的答案以解決您的更新。 – bolinfest
我應該使用哪些註釋? –