0
問題很簡單。假設我定義了一個數組和兩個全局變量。僞代碼:如何在對象的參數上保留一個表達式,以便我可以重新評估它
var X;
var Y;
var pool=[];
隨着時間的推移,這個數組被隨機填充對象。
pool.push(Object1={a:X+Y,b:X*Y,c:X-Y,...});
pool.push(Object2={a:X/Y,b:X+2*Y,c:X-Y,...});
pool.push(ObjectN={a:X+8*Y,b:X*Y,c:X-Y,...});
問題是我需要定期重新評估每個對象的a,b,c參數,因爲X和Y已經改變。
for(var i=0;i<pool.length;i++){
reevaluate(pool[i]);
}
有什麼辦法重新評估A,B,C ...無需參數重新定義他們爲每個對象有什麼不同?換句話說,有沒有辦法保持原始表達?只要你想得到當前結果
pool.push(function() { return {a:X+Y,b:X*Y,c:X-Y,...}; });
然後,您可以調用的函數:
謝謝。這可能是一個選項。如何將表達式存儲爲字符串並使用eval()? – Hismail
@Hismail:這是一個壞主意;它很慢並且容易出現安全漏洞。 – SLaks