Javascript Closures, Callbacks, This and That
        Posted  
        
            by nazbot
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by nazbot
        
        
        
        Published on 2010-06-09T12:59:05Z
        Indexed on 
            2010/06/09
            13:02 UTC
        
        
        Read the original article
        Hit count: 287
        
I am having some trouble getting a callback function to work. Here is my code:
SomeObject.prototype.refreshData = function()
{
  var read_obj = new SomeAjaxCall("read_some_data", { }, this.readSuccess, this.readFail);
}
SomeObject.prototype.readSuccess = function(response)
{
    this.data = response;
    this.someList = [];
    for (var i = 0; i < this.data.length; i++)
    {
      var systemData = this.data[i];
      var system = new SomeSystem(systemData);
      this.someList.push(system);
    }
    this.refreshList();
}
Basically SomeAjaxCall is making an ajax request for data. If it works we use the callback 'this.readSuccess' and if it fails 'this.readFail'.
I have figured out that 'this' in the SomeObject.readSuccess is the global this (aka the window object) because my callbacks are being called as functions and not member methods. My understanding is that I need to use closures to keep the 'this' around, however, I have not been able to get this to work.
If someone is able show me what I should be doing I would appreciate it greatly. I am still wrapping my head around how closures work and specifically how they would work in this situation.
Thanks!
© Stack Overflow or respective owner