0

私はいくつかのオブジェクトを持っています:

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

および2つのアレイ:

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 に答える