Hallo,
Ich habe ein großes Objekt. Dieses Objekt benötigt Daten die nachgeladen werden müssen. Das erledigt die Funktion Request. Es soll dann eine Methode des Objekts (myCallback) (bzw. genau dieser Instanz) mit den geholten Daten aufgerufen werden.
function obj() {
this.myCallback = function(req) {
alert(req);
}
//self = this;
^window.self = this?
var self = this;
Request( function() { self.myCallback() } );
^hier wird Request mit einem Parameter aufgerufen, der eine anonyme Funktion _ohne_ Parameter darstellt, welche self.myCallback() _ohne_ Parameter aufruft.
}
function Request(callback) {
^callback ist hier, nach dem Erzeugen von obj(), function() { self.myCallback() }, also eine anonyme Funktion _ohne_ Parameter.
window.setTimeout( function() { callback('ich bin callback') }, 1000);
^hier wird callback aber mit Parameter aufgerufen, der geht allerdings ins Nirvana, da callback wiederum .myCallback() _ohne_ Parameter aufruft.
}
foo();
^?
var myObj = new obj();
Das produziert mit aber ein Alert mit undefined anstatt 'ich bin callback'.
Klar, myObj.myCallback().
viele Grüße
Axel