Я использую подклассы для добавления пользовательских свойств к стандартным объектам Fabric, например:
var IdRect: any = fabric.util.createClass(fabric.Rect, {
type: 'idRect',
initialize: function(id, dbType, options) {
this.callSuper('initialize', options);
this.id = id;
this.dbType = dbType;
},
toObject: function () {
return fabric.util.object.extend(this.callSuper('toObject'), {
});
},
_render: function (ctx) {
this.callSuper('_render', ctx);
}
});
IdRect.fromObject = function(options, callback) {
var idRect = new IdRect(null, null, options);
callback && callback(idRect);
return idRect;
}
Одна проблема, с которой я сталкиваюсь при попытке клонировать выборку этих пользовательских объектов, состоит в том, что fabric.util.getKlassвозвращает ноль (невозможно прочитать свойство 'fromObject' из неопределенного).Клонирование их по отдельности работает нормально.