行为不端的阵列

时间:2012-07-05 07:28:26

标签: javascript arrays

我有一个班级,看起来像这样:

function MyClass()
{
    this.array1 = [];
    this.array2 = [];
    this.add_item = function( i_x, i_y, i_item )
    {
        var pos = { "x" : i_x, "y" : i_y, "data" : i_item };
        this.array1.push( pos );
        this.array2.push( pos );
    }
    return this;
}

当我在add_item方法的第二行(this.array1.push行)放置一个断点时,array1和array2都已经有了pos项!当我向前迈出一步时,两个数组再次收到pos项目!

不太可能的答案是这是Firefox中的一个错误。我稍微尝试了将方法原型设计成Object,但后来读到这可能会导致for-each-loops出现问题。可能是什么导致了这个?旧代码还在那里蹦蹦跳跳吗?我需要一个线索。我删除了所有的Array和Object原型代码。我重启了firefox。什么都没有帮助。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

事实证明问题出在firebug调试器上。它没有显示实际的数组。我不确定它显示的是什么,但我实现了自己的对象打印方法(处理循环对象引用),结果表明数组是正确的。

phew 以为我在那里坚持了一段时间。