2
我有一個JS文件,做這樣的事情:如何在JS壓縮器重命名變量時通過eval()設置變量?
var value = localStorage.getItem(somekey);
if (!value)
{
eval("value = String(" + somevariablename + ");");
}
這個腳本試圖檢索從本地存儲的值。如果該值在本地存儲中不存在,則設置爲使用先前定義的變量值的eval值。由於value
的值必須設置爲變量名稱的字符串值,因此在這種情況下,我需要使用eval。我不知道任何其他方式。
問題是,最好的JS壓縮機提供了一種方法來自動重命名變量名稱,以節省空間。我最終是這樣的:
var f=localStorage.getItem(e);
if(!f){eval("value = String("+e+");")}
所以問題是,我的變量得到了改名,但壓縮機不知道在EVAL字符串改變變量的名稱。我從來沒有見過一臺足夠聰明的壓縮機來解決這個問題。
在構建環境中以自動方式處理此問題的最佳方式是什麼?進入並手動更改evals中的變量名稱非常耗時,因爲在我的情況下,這樣的代碼發生了很多。
爲什麼要使用eval?只需使用'value = somevariablename.toString()' – PitaJ
你可以這樣使用eval:'value = eval(「String(」+ somevariablename +「)」) - 問題是:如果變量名稱改變,你會如何現在'somevariablename'中的變量名是正確的? – vstm