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

Javascript 如何使用Fabric.js获取受事件影响的对象的属性?,javascript,events,fabricjs,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属性 如果是,我该怎么做 如果不是,有没有关于如

使用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
指的是函数,而不是某个类

那么,以上三个问题的答案是什么

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

这不仅是可能的,而且非常简单;)您应该阅读有关JavaScript的内容

关于问题#1

关于问题#2

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

这不仅是可能的,而且非常简单;)您应该阅读有关JavaScript的内容

关于问题#1

关于问题#2


如果函数在创建时引用了范围内的某些变量,它将“关闭”这些变量。这意味着,即使在您调用函数时它们不在作用域中,也可以访问和修改它们。如果函数在创建时引用了作用域中的某些变量,它将“关闭”这些变量。这意味着,当您调用它时,即使它们不在范围内,它们也可以被访问和修改。好的,这回答了我的问题,但实际上我在更大的上下文中有这个东西。。。请看编辑我很抱歉,但我认为我在更新中提到的内容无关紧要。。。JavaScript对我来说很不寻常(我在使用C#和C系列)。@Girardi,是的,我能理解为什么你觉得它很麻烦,就像我在和OO JavaScript中读到的闭包一样;)#2是一种非常聪明的方法,它利用了执行
var obj1=obj2
时传递给变量的几乎总是引用!非常感谢。好的,这回答了我的问题,但实际上我有一个更大的背景。。。请看编辑我很抱歉,但我认为我在更新中提到的内容无关紧要。。。JavaScript对我来说很不寻常(我在使用C#和C系列)。@Girardi,是的,我能理解为什么你觉得它很麻烦,就像我在和OO JavaScript中读到的闭包一样;)#2是一种非常聪明的方法,它利用了执行
var obj1=obj2
时传递给变量的几乎总是引用!非常感谢。
var rect = new fabric.Rect({});
rect.on('moving', function(obj) {
    rect.someProperty = 'test';
});
function SomeClass() {
    var rect = this.rect = new fabric.Rect({});

    this.rect.on('moving', function(obj) {
        // here, this.rect is undefined
        rect.someProperty;
    });
}