我有一个班级,看起来像这样:
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。什么都没有帮助。有什么想法吗?
答案 0 :(得分:0)
事实证明问题出在firebug调试器上。它没有显示实际的数组。我不确定它显示的是什么,但我实现了自己的对象打印方法(处理循环对象引用),结果表明数组是正确的。
phew 以为我在那里坚持了一段时间。