使用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
属性?提前谢谢!
-
更新: @plalx正确回答了上述问题,但我确实在更大的背景下解决了这个问题:
function SomeClass()
{
this.rect = new fabric.Rect({});
this.rect.on('moving', function(obj) {
// here, this.rect is undefined
});
}
嗯,在后一种情况下,我不仅可以在函数内部使用this.rect,因为this
引用了函数,而不是SomeClass。
现在怎么样,上面三个问题的答案是什么?
答案 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;
});
}