Clonando objetos no Fabric.js

Estou clonando um objeto selecionado em uma tela no Fabric.js usando uma função simples.

function duplicateObj() {
  var obj = canvas.getActiveObject();
  var clone = fabric.util.object.clone(obj);
  clone.set({left: 100,top: 100});
  canvas.add(clone); 
}

Isso funciona absolutamente bem. Agora, se eu trabalhar com o objeto e o clone não for mais necessário e eu o selecionar e excluir, os dois objetos, o clone e o objeto original serão excluídos. A função de exclusão é:

function deleteObj() {
  var obj = canvas.getActiveObject();
  canvas.fxRemove(obj);
}

Os objetos são os mesmos. Existe maneira de clonar objetos e torná-lo independente do original? Eu tentei isso:

function duplicateObj() {
  var obj = canvas.getActiveObject();
  var clone = fabric.util.object.clone(obj);
  clone.initialize();
  $.extend(clone, obj);
  fabric.util.object.extend(clone, obj);
  clone.set({left: 100,top: 100});
  canvas.add(clone); 
}

Funciona, no entanto, os objetos são os mesmos novamente e, se eu usar apenas a inicialização, acabarei com um objeto que agora possui propriedades definidas.

questionAnswers(6)

yourAnswerToTheQuestion