molily: AJAX-XMLHttpRequest im Objekt problem

Beitrag lesen

ich habe mir ein Objekt gebastelt und in diesem möchte ich eine datei laden, asynchron, wenn die datei geladen wurde, soll der inhalt der datei in dem objekt zur verfügung stehen, macht es aber nicht ..

Zeig mal das Objekt.

hier ein ausschnitt .. ich verstehe nur nicht warum, es scheint als würde JS in der Funktion das übergebene Objekt kopieren bzw. dass der Pointer aus der Funktion nicht "rauskommt" und das eigentliche Objekt die Daten nicht hält

Wo übergibst du denn ein Objekt?!

function ReadConfigXML(filename){
  this.data = null;
  var xmlHttp = new XMLHttpRequest();
  var tObj = this;

xmlHttp.onreadystatechange = function(){
  if(xmlHttp.readyState == 4 ){
  tObj.data= xmlHttp.responseText;
}
};
}

  
Wie rufst du die Funktion auf und worauf zeigt this beim Aufruf?  
  
Wenn du die Funktion nicht als Methode eines Objektes oder mit call/apply aufrufst, so zeigt this auf window.  
  
So etwa ginge es:  
  
~~~javascript
var obj = {  
   readConfigXML : function () {  
      this.data = null;  
      var xhr = new XMLHttpRequest();  
      xhr.open('GET', '...', true);  
      xhr.onreadystatechange = function () {  
         if (xhr.readyState == 4) {  
            obj.data = xhr.responseText;  
         }  
      };  
      xr.send(null);  
   }  
};  
obj.readConfigXML();

Siehe auch
Konstruktoren, Prototypen und Instanzen
Objektverfügbarkeit und this-Kontext

Mathias