manchmal will man ja doch nur eine kopie nutzen.
Das ist in JavaScript ein mehr hypothetischer Fall - in der Praxis findet man meist einfachere und performantere Lösungen. Die Natur von JavaScript hilft einem dabei weiter.
Klar liegen manche Daten z.B. als Baum von Objects vor. Wenn man hierauf schreibend operieren und das Original erhalten will, dann muss man auf einer Deep Copy arbeiten. Allerdings wäre es dann sinnvoller, diese Operation mit dem Kopieren zu verquicken, sodass letztlich Copy-on-write herauskommt und der Rest durch Referenzen oder Delegation gelöst werden kann. Wie Struppi sagt, vermeidet man Deep Copy wenn es nur geht. Und es geht m.E.n. fast immer. Viel häufiger ist Shallow Copy, das ist in der Regel trivial. Bibliotheken wie PrototypeJS, Mootools oder Yahoo UI bieten einem dazu eine Menge an Helferfunktionen. Die von Yahoo UI habe ich mal in einem Artikel beschrieben.
Mathias