我可以获得什么来处理 fabric js 事件的目标?

What can I get a handle on the target of a fabric js event?

this fabricjs tutorial section 中它说将听众放在像这样的对象上

var rect = new fabric.Rect({ width: 100, height: 50, fill: 'green' });
   rect.on('selected', function() {
   console.log('selected a rectangle');
});

很好,但我不想将字符串记录到控制台。我想操纵矩形。具体来说,矩形在默认情况下是不可选择的,并且基于应用程序状态,我需要使其可选择。

我不知道如何从事件处理程序内部获取矩形的句柄。我不知道该怎么做。

在您提供的示例中,您已将事件附加到对象本身。因此,您可以使用 this 或变量名(在您的情况下为 rect )访问对象。这是一个例子

var rect = new fabric.Rect({ width: 100, height: 50, fill: 'green' });
rect.on('selected', function() {
   console.log(this);
   this.set({width:200});
});

或者,如果您将它附加到 canvas 以便它侦听所有 object:selected 事件,您可以像这样访问事件发生的对象:

var rect = new fabric.Rect({ width: 100, height: 50, fill: 'green' });
canvas.on('object:selected', function (e) {
    console.log('selected a rectangle');
    e.target.set({width:200});
});