fabric.js - 向形状添加自定义属性

fabric.js - Adding custom properties to a shape

我正在尝试为矩形添加一些自定义属性。

我已尝试根据 fabric.js 文档设置 toObject 属性。

let rect = new fabric.Rect();

    rect.toObject = ((toObject) => {
        return () => {
            return fabric.util.object.extend(toObject.call(this), {
                name: 'some name'
            });
        };
    })(rect.toObject);

    this.canvas.add(rect);

当我点击 canvas

的保存时

this.canvas.toJSON();

我得到一个 错误类型错误:this.callSuper 不是函数。

因为this 箭头函数中的值不正确。要么将其更改为正常功能,要么传递 rect object 而不是 this.

const canvas = new fabric.Canvas('c')
const rect = new fabric.Rect();

rect.toObject = (function(toObject) {
  return function(propertiesToInclude) {
    return fabric.util.object.extend(toObject.call(this, propertiesToInclude), {
      name: 'some name'
    });
  };
})(rect.toObject);

canvas.add(rect);
console.log(canvas.toJSON())
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/3.4.0/fabric.js"></script>
<canvas id='c'></canvas>