Клонирование объектов в Fabric.js

Я клонирую выбранный объект на холсте в Fabric.js, используя простую функцию.

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

Это работает абсолютно нормально. Теперь, если я работаю с объектом, и клон больше не требуется, и я выбираю и удаляю его, оба объекта, клон и исходный объект удаляются. Функция удаления:

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

Объекты одинаковы. Есть ли способ клонировать объекты и сделать клон независимым от оригинала? Я попробовал это:

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); 
}

Это работает, однако объекты снова остаются прежними, и если я использую только инициализацию, я получаю объект, у которого теперь установлены свойства.

Ответы на вопрос(6)

Ваш ответ на вопрос