如何使用Fabric.js获取受事件影响的对象的属性?

时间:2013-04-10 03:51:16

标签: javascript events fabricjs

使用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,因为this引用了函数,而不是SomeClass。

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

1 个答案:

答案 0 :(得分:3)

  

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

不仅可行,而且非常简单;)您应该在JavaScript中阅读closures

问题#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;
    });
}