Как мне клонировать экземпляр класса JavaScript?
Я пробовал обычный jQuery-расширение, но это просто возвращает ванильный объект. Я просмотрел много других ответов на стек, но не смог найти, как клонировать экземпляр.
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);
Я бы предпочел, чтобы клон был глубоким/рекурсивным. И.Е. все объекты, которые являются объектами, также клонируются.