问题很简单。假设我定义了一个数组和两个全局变量。伪代码:
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 ...参数而无需重新定义它们并使每个对象不同?换句话说,有没有办法保留原始表达式?
答案 0 :(得分:0)
您可以使用一系列函数:
pool.push(function() { return {a:X+Y,b:X*Y,c:X-Y,...}; });
然后,只要您想获得当前结果,就可以调用这些函数。
您可能想要维护两个数组;一个用于函数,一个用于当前缓存的值。