我有一堂课,看起来像这样:
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。没有什么帮助。有任何想法吗?