2012-08-13 30 views
1

我想在下面的代碼中訪問processAfterDone,但我得到一個Reference錯誤,因爲我在匿名函數中。我使用Base.js進行類繼承。如果你知道比我更開放的東西。我試過self.processAfterDone()和this.processAfterDone()。我無法弄清楚這個問題是由我,jQuery還是Base.js工作方式造成的。任何幫助appriciated。現在代碼:在匿名函數中訪問上下文

var Test = Base.extends({ // uses Base.js for class like javascript - see http://dean.edwards.name/weblog/2006/03/base/ 

    callAjax: function() { 
      requestAccessToken().done(function() { // does an ajax call and passes the ajax return object to access .done() 
        console.log("call processAfterDone"); 
        processAfterDone(); 
      }); 
    }, 

    processAfterDone: function() { 
      console.log("processAfterDone"); 
      //do more stuff here 
    } 

})

+0

我寧可使用.done(processAfterDone);但我必須再次傳遞上下文,以使用processAfterDone中的類字段。關於這個想法的任何想法? – Daniel 2012-08-13 09:29:08

回答

1

解決它通過使用.done($.proxy(this, 'processAfterDone'));我花了2天,明白這一點。希望這可以幫助很多人。