Is there a quick way to "super" deep clone a node, including its properties? (and methods, I guess)
I've got something like this:
var theSource = document.getElementById("someDiv")
theSource.dictator = "stalin";
var theClone = theSource.cloneNode(true);
alert(theClone.dictator);
The new cloned object has no dictator
property. Now, say I've got a thousand properties attached to theSource
- how can I (non-explicitly) transfer/copy them to the clone?
// EDIT
@Fabrizio
Your hasOwnProperty
answer doesn't work properly, so I adjusted it. This is the solution I was looking for:
temp = obj.cloneNode(true);
for(p in obj) {
if(obj.hasOwnProperty(p)) { eval("temp."+p+"=obj."+p); }
}
probably the best way to save a lot of properties is to create a property object in which you can store all properties e.g.
then you have to copy just one property
otherwise do a
for
cycle for all properties you have stored