JavaScript内存分配

时间:2014-02-17 04:58:26

标签: javascript firefox

我遇到了一个问题,我在迭代中计算并将值存储到对象的不同数组中,但只有最终的迭代值最终会保存在对象的不同部分。

在这里的图片中,我有控制台输出了值minY和maxY。

enter image description here

然后我在使用它之前检查存储在我的数组中的值。

enter image description here

这有什么办法吗?第二张图片中的这些值是最终被使用的值,它阻止我前进。

编辑:我用于作业的循环:

    for (var i = 0; i < partitions; i++) {
        var cellObject = new Object();
        cellObject.minX = sceneBounds.min[0] + boxLength * i;
        cellObject.maxX = sceneBounds.min[0] + boxLength * i + boxLength;

        for (var j = 0; j < partitions; j++) {

            cellObject.minY = sceneBounds.min[1] + boxWidth * j;
            cellObject.maxY = sceneBounds.min[1] + boxWidth * j + boxWidth;
            for (var k = 0; k < partitions; k++) {

                // int index = height*width*k + width*j;
                var index = partitions * partitions * k + partitions * j;
                cellObject.minZ = sceneBounds.min[2] + boxHeight * k;
                cellObject.maxZ = sceneBounds.min[2] + boxHeight * k + boxHeight;

                cellObject.objectList = [];
                cellArray[index + i] = cellObject;
            }
        }
    }

1 个答案:

答案 0 :(得分:1)

您所询问的内容并不完全清楚,但这似乎是参考共享的一个例子。

请注意:

a = b = {};
a.x = 7
console.log(b.x); // 7

或等效

a = {};
b = a;
a.x = 7
console.log(b.x); // 7

VS

a = {};
b = {};
a.x = 7;
console.log(b.x) // undefined

确保您没有使用相同的文字初始化“对象中的不同数组”。