0

使用 Fabric.js 1.1.6,我有以下内容:

var rect = new fabric.Rect({});
rect.on('moving', function(obj) {
    // I want to retrieve and set properties from the
    // object rect from inside this event function
});
  • 是否可以从事件调用的函数内部检索和修改rect属性?
  • 如果是,我该怎么做?
  • 如果不是,关于如何从事件函数内部修改 rect 属性的任何建议?

先感谢您!

--

更新: @plalx 正确回答了上述问题,但实际上我在更大的背景下对此进行了回答:

function SomeClass()
{
    this.rect = new fabric.Rect({});
    this.rect.on('moving', function(obj) {
        // here, this.rect is undefined
    });
}

好吧,在后一种情况下,我不能只在函数内部使用 this.rect,因为 therethis指的是函数,而不是 SomeClass。

现在怎么样,以上三个问题的答案是什么?

4

1 回答 1

3

“是否可以从事件调用的函数内部检索和修改矩形属性?”

这不仅是可能的,而且非常简单;) 你应该阅读 JavaScript 中的闭包

对于问题 #1

var rect = new fabric.Rect({});
rect.on('moving', function(obj) {
    rect.someProperty = 'test';
});

对于问题 #2

function SomeClass() {
    var rect = this.rect = new fabric.Rect({});

    this.rect.on('moving', function(obj) {
        // here, this.rect is undefined
        rect.someProperty;
    });
}
于 2013-04-10T04:27:01.690 回答