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... 参数而不需要重新定义它们并且每个对象都不同?换句话说,有没有办法保持原来的表达方式?

4

1 回答 1

0

您可以使用一组函数:

pool.push(function() { return {a:X+Y,b:X*Y,c:X-Y,...}; });

然后,您可以在想要获得当前结果时调用这些函数。

您可能想要维护两个数组;一个用于函数,一个用于当前缓存值。

于 2013-07-08T13:49:36.183 回答