【发布时间】:2011-03-18 02:11:01
【问题描述】:
我刚刚发现了在 Javascript 中通过引用传递对象的困难方式,例如:
for(var layer = 0; layer < hudLayers['layers'].length; layer++){
// Store the to-be-calculated values in this object
var tempValues = hudLayers['layers'][layer];
tempValues['name'] = 'test';
}
这将改变 tempValues 和 hudLayers 中的值。 (看起来有点明显,但没有一点代码的帖子看起来很赤裸裸。)
有没有快速的解决方法?
【问题讨论】:
-
您想为
tempValues分配一个值,但它没有反映在hudLayers中吗?你为什么想要那个? -
你真的想知道吗? :)
hudLayers包含图像宽度和高度的几个变量。这是一个HUD,所以它必须每秒绘制多次。hudLayers中的内容实际上是“蓝图”(此图像的宽度基于该变量的值,...)如果我简单地将其写回hudLayers,则蓝图消失了,屏幕上的图像将始终保持不变。
标签: javascript object pass-by-reference byref