Come clonare un'istanza di classe JavaScript?Come clonare un'istanza di classe JavaScript?
Ho provato il normale estensione jQuery, ma questo restituisce solo un oggetto vaniglia. Ho esaminato molte altre risposte sullo stack, ma non sono riuscito a trovare come clonare un'istanza.
function Parent(name) {
this.name = name;
}
Parent.prototype.sayHello = function() {
console.log('Hello my name is ' + this.name);
}
function Child(name) {
Parent.call(this, name);
}
Child.prototype = Object.create(Parent.prototype);
var child = new Child('Billy');
var clone = $.extend(true, {}, child);
clone.name = 'Bob';
child.sayHello();
clone.sayHello();
console.log(child instanceof Child);
console.log(clone instanceof Child);
preferirei che il clone era profonda/ricorsivo. OSSIA anche tutte le proprietà che sono oggetti sono clonate.
Così si vuole fare una copia esatta, ma che non crea un riferimento alla l'originale? Se vuoi oggetti multipli che non si riferiscono tra loro, perché non crei gli oggetti in un loop? – Ryan
Questa risposta fornisce alcuni ragionamenti eccellenti sul perché questo sarà difficile: http://stackoverflow.com/a/728694/187954 –