Javascript 如何将作用域传递给回调?

Javascript 如何将作用域传递给回调?,javascript,callback,Javascript,Callback,我有下面的代码结构,我试图在成功和错误回调中维护当前对象的“this”范围 我尝试过使用Apply函数,但我不确定如何在我的用例中使用,这就是我需要帮助的地方 以下是我的代码: function navigateToDocumentList(record){ var self= this; var handoutDocumentList=Ext.create('xxx.view.HandoutsDocumentListPanel'); var navigationView =

我有下面的代码结构,我试图在成功和错误回调中维护当前对象的“this”范围

我尝试过使用Apply函数,但我不确定如何在我的用例中使用,这就是我需要帮助的地方

以下是我的代码:

function navigateToDocumentList(record){
  var self= this;
    var handoutDocumentList=Ext.create('xxx.view.HandoutsDocumentListPanel');
    var navigationView = self.getNavigationView();
    navigationView.push(handoutDocumentList);
    navigationView.getNavigationBar().show();
    navigationView.getNavigationBar().setTitle(record.data.name);
    var url =  intermountain.constants.HANDOUTS_DOCUMENTS_OF_CATEGORY_SERVICE_URL+record.data.name;
    self.makeAJAXCallWIthParams(url,
                               16000,
                               self.navigateToDocumentListSuccess,
                               self.navigateToDocumentListError,
                               self);
}


function makeAJAXCallWithParams(url, timeout, success, error, callbackObj) {
Ext.Viewport.setMasked({
                        xtype: 'loadmask',
                        message: 'Loading ...'
                    });
Ext.Ajax.request({
                url: url,
                timeout: 5000,
                success: success.apply(callbackObj,[]),// I need to know how to pass the function arguments here as earlier I was just calling it by success and now I need to call it using apply function
                failure: failure

            });
}
如果我需要更好地解释这个问题,请告诉我。如有任何意见/提示,将不胜感激


谢谢你的时间

要回答您关于参数的问题,Javasctript中的每个函数都可以通过
参数
伪参数访问包含其所有参数的列表:

success: function(){ return success.apply(callbackObj, arguments) }
但是,使用
bind
方法而不是
apply
call
会更简单

success: success.bind(callbackObj),
failure: failure.bind(callbackObj)

作用域与变量访问相关,上下文与
this
的值相关。这个问题更多的是关于上下文。