Stefan Beck: Zugriff auf Member in verschachtelten Funktionen eines Objekts

Beitrag lesen

Hallo zusammen!

Nach meiner langen, erfolglosen Suche hier und in anderen Foren - meine Stichworte function und OOP ist wohl etwas sehr häufig - wende ich mich nun aktiv an euch.

Ich habe mich in OOP-Javascript versucht und folgende Klasse geschrieben:

function ajaxQueue( size ) //CLASS
  {
    //MEMBER
    this.Size = size;
    var Count = 0;
    var Request = new Array( size );
    var ResponseHandler = new Array( size );
    var Event = new Array( size );
    var Handler = new Array( size );
    var EventName = 0;

//METHODEN
    this.GetEventName = function() { return EventName; };
    this.AddRequest = function( request, response_handler )
      {
        //Fuege einen neuen Request mit zugehoerigem Event und Handler ein
        if ( this.Size > Count )
        {
          Request[ Count ] = request;
          ResponseHandler[ Count ] = response_handler;
          Event[ Count ] = "AJAXready_" + Count;

(*)
          Handler[ Count ] = function( evt )
            {
              EventName = Event[ Count ];  //EventName = Event[] = Count = undefined
              alert( "EN: " + EventName );  //ebenso alle andere Member von ajaxQueue
              alert( "RQ: " + Request[ Count ] );
              makeRequest( Request[ Count ], ResponseHandler[ Count ] );
              document.body.removeEventListener( EventName, Handler[ Count ], false );
              EventName = 'AJAXready_' + Count + 1;
            }

document.body.addEventListener( Event[ Count ], Handler[ Count ], false );
          Count = Count + 1;
        }
      }

this.Start = function()
      {
        EventName = "AJAXready_0";
        this.Evnt = document.createEvent("Events");
        this.Evnt.initEvent( EventName, true, true);
        document.body.dispatchEvent( this.Evnt );
      };
  }

Soweit funktioniert auch vieles, jedoch ab der mit (*) markierten Stelle streikt. Wie zu sehen ist, wird die Funktion Handler[Count] innerhalb der Funktion AddRequest definiert, die wiederum in der Klasse eingebettet ist. Innerhalb der Funktion AddRequest kann ich auf die Member der Klasse ajaxQueue ohne weiteres zugreifen (z.B. this.size oder für private Member einfach nur Count).
Jedoch in der Funktion Handler[Count] bekomme ich jedesmal ein "undefined". Wenn ich innerhalb dieser Funktion auf einen öffentlichen Member wie this.Size zugreifen will, bekomme ich die Fehlermeldung "this.Size has no properties" (Firefox Fehlerconsole).

Da mir als Javascript-Anfänger langsam die Ideen ausgehen, wäre ich über jeden Vorschlag ziemlich happy.

Beste Grüße
   Stefan