JavaScript、MooTools和变量/对象范围

JavaScript、MooTools和变量/对象范围,javascript,events,scope,mootools,draggable,Javascript,Events,Scope,Mootools,Draggable,我可能在这里使用了错误的模式,但如果我是,我希望有人能纠正我 我有一个表示用户工作区的对象,作为对服务器操作的响应,它克隆一个div,更改其某些属性,将其放置在工作区中,使其可拖动,并添加一个onComplete操作。此操作旨在调用workspace对象的另一个方法,将div的更新位置发送回服务器,以进行布局持久化 我已经将课程简化为相关的方法: var MooPanel = new Class( { createDiv: function() { var newDiv

我可能在这里使用了错误的模式,但如果我是,我希望有人能纠正我

我有一个表示用户工作区的对象,作为对服务器操作的响应,它克隆一个div,更改其某些属性,将其放置在工作区中,使其可拖动,并添加一个onComplete操作。此操作旨在调用workspace对象的另一个方法,将div的更新位置发送回服务器,以进行布局持久化

我已经将课程简化为相关的方法:

var MooPanel = new Class( {
    createDiv: function() {
        var newDiv = existingDiv.clone();
        var dragHandle = newDiv.title;

        var move = new Drag(newDiv, {
            'handle':  dragHandle,
            'x': true,
            'y': true,
           /* original line: 
            'onComplete': function( el, dr ) { updateCoordinates( el, dr ); }
            */
           /* working line: */
            'onComplete': function( el, dr ) { this.updateCoords(el); }.bind(this)
        }
    },
    updateCoordinates: function( el, dr ) {
        send.to.server();
    }
});
现在,我很难让它调用我的
updateCoordinates
方法。我尝试了多种组合的
this
和其他关键字,但都没有完全正确

调用
更新坐标的正确方法是什么?

试试这个(双关语不是故意的):


在onComplete函数中,此
指的是onComplete函数本身。通过将函数绑定到类
this
,然后引用类实例本身。

太棒了,谢谢你,我尝试了
this
的各种组合。bind(this)
但从来没有得到正确的答案,我现在编辑了答案,以包含正确的行,谢谢!
onComplete: function( el, dr ) { this.updateCoordinates( el, dr ) }.bind(this);