LINUX.ORG.RU

recursive deep copy в JavaScript [+]


0

0

Есть объект сложной иерархической структуры (отпарсенный XML конфиг). Уровень вложенности как минимум 4. В нем могут быть просто строки, чмсла, массивы, массивы массивов, массивы собственных типов данных и др.

Как можно создать точную копию этого объекта ?



ммм... я конечно так с ходу не вспомню js, но разве там по аналогии с C++ нет аналога конструктора копирования? aka разве a = b; где a/b - экземпляры развесистого класса не даёт в a полную копию b?

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от klalafuda

Это не копия. а и b ссылаются на один и тот же объект

sdio ★★★★★
()
Ответ на: комментарий от alex_custov

> a = b cкопирует ссылки, т.е. Shallow copy а не Deep.

нуу.. может так оно и правильно? если объект и подобъекты reference counted то зачем в самом деле делать deep copy, тратя на это лишние ресурсы :-?

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от klalafuda

объект подвергается сложной деформации. При выполнении нескольких условиий нужно его перезаписать из локальной копии. Если условия не выполняются, соотв-но объект остаётся как был.

Для этого и нужно сделать глубокую локальную копию, отмодифицировать её, просмотреть условия, и записать обратно если нужно.

alex_custov ★★★★★
() автор топика
Ответ на: комментарий от alex_custov

нуу.. тогда не знаю :) нужно смотреть документацию. последний раз, когда я общался с js, она жила в онлайне на developer.netscape.com но судя по всему, что-то поменялось.

// wbr

klalafuda ★☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.