Skip to content

Instantly share code, notes, and snippets.

@jarek-foksa
Created November 30, 2011 21:23
Show Gist options
  • Save jarek-foksa/1410912 to your computer and use it in GitHub Desktop.
Save jarek-foksa/1410912 to your computer and use it in GitHub Desktop.
global.copy = function(refObject) {
var newObject;
var descriptor;
var properties;
if (refObject.cloneNode) {
newObject = refObject.cloneNode();
}
else {
newObject = Object.create(Object.getPrototypeOf(refObject));
properties = Object.getOwnPropertyNames(refObject);
properties.forEach( function(property) {
descriptor = Object.getOwnPropertyDescriptor(refObject, property);
Object.defineProperty(newObject, property, descriptor)
});
}
return newObject;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment