0

我有一些对象:

var obj1 = new Obj1(),
    obj2 = new Obj2(),
    ...

和两个数组:

objecs.push(obj1, obj2,...);
defaultObjects.push(obj1, obj2, ...);

在游戏循环期间objects数组发生变化,但defaultObjects不会。当游戏需要重新启动时,我需要使objects等于defaultObjects(就像一开始一样)。如果我这样做:

objects = defaultObjects.slice(0)

这是否意味着objects[0]并且defaultObjects[0]现在指向同一个对象obj1,但是之间没有联系objectsdefaultObjects所以我得到了我需要的东西?

4

1 回答 1

1

那是对的。slice将返回一个新数组。
但是,正如您所提到的,数组元素仍将引用相同的对象。即从一个数组更改任何对象将导致其在另一个数组中的更改。

于 2012-06-10T09:43:16.297 回答