Witam,
ostatnio zabrałem się za napisanie pewnej klasy, wykorzystującej obiekty XMLHttpRequest. Klasa ta posiada tablicę, w której tworzone są nowe obiekty klasy c_XMLHttpRequest, która z kolei jest niejako "obudową" dla XMLHttpRequest (zawiera w sobie obiekt tej klasy). Przedstawie w skrócie kod:

function c_XMLHttpRequest(aAjax)
{
    this._onReadyStateChange = function () {
        this.fAjax._onReadyStateChange(this);
    }
    this.fAjax = aAjax; // referencja do obiektu klasy głównej
    this.xhr = // tu tworzony jest nowy obiekt XMLHttpRequest
    this.xhr.onreadystatechange = this._onReadyStateChange;
}

Problem: chciałbym w jakiś sposób uzyskać dostęp do całego obiektu c_XMLHttpRequest, gdy zajdzie zdarzenie onreadystatechange w obiekcie xhr. Powyższy kod niestety nie działa, this zawiera jedynie kod metody _onReadyStateChange. Można to obejść stosując zmienną globalną (czego właśnie chcę uniknąć) i w niej przechowywać te obiekty, wtedy wygląda to mniej więcej tak:

var xhrArray = new Array(), nextIndex = 0;

function c_XMLHttpRequest(aAjax)
{
    this._onReadyStateChange = function () {
        this.fAjax._onReadyStateChange(this);
    }
    this.fAjax = aAjax; // referencja do obiektu klasy głównej
    this.xhr = // tu tworzony jest nowy obiekt XMLHttpRequest
    this.index = nextIndex;
    this.xhr.onreadystatechange = new Function(
        "xhrArray["+(nextIndex++)+"]._onReadyStateChange();"
    );
}

Pomijam tworzenie obiektów i wysyłanie żądań przez XMLHttpRequest, chodzi o samo zdarzenie zmiany stanu. Nie chcę używać zmmiennej globalnej, ale nie wiem jak dostać się do obiektu c_XMLHttpRequest (lub chociaż obiektu XMLHttpRequest, który je wywołał) podczas wywołania tego zdarzenia.
W razie gdyby coś było niezrozumiałe, prosze pytać. Kod pisałem na sucho, jedynie dla przykładu.