У меня есть класс, который выглядит следующим образом:
function Element(){
this.changes = {};
}
Теперь у меня есть экземпляр этого "класса", например, el = new Element()
. Эти экземпляры хранятся в массиве, например elements.push(el)
.
Этот массив элементов теперь хранится в объекте, который затем помещается в массив, states
.
Теперь есть случаи, когда мне нужна копия одного из элементов, поэтому мне нужно будет сделать что-то вроде var cloned = $.extend(true, {}, states[0])
. Здесь я предположил, что мы клонируем первое состояние.
Теперь проблема в том, что то, что я получаю, state[1].elements[0]
все еще указывает на исходный экземпляр. Таким образом, любые изменения, которые я делаю для клонированного объекта, также меняют оригинал.
Это разочаровывает то, что застревает в такой тривиальной проблеме...
Вот скрипка, которую я создал, чтобы проверить ее: http://jsfiddle.net/E6wLW/