Hallo,
Wobei ich dann nicht verstehe, warum Du einerseits myCallback(req) als Public-Methode des Objektes deklarierst, dann aber das Objekt in eine private Variable self steckst, um die Methode myCallback(req) dieses privaten Objektes aufzurufen.
Huch, hm keine Ahnung, wohl weil ich mit JS gerade irgendwie nicht so recht zurechtkomme. Verstehe ich das richtig, dass die Syntas var f = function() { } einfach nur bedeutet, dass das eine private Methode ist
Ja. Wobei man dann auch einfach innerhalb der äußeren Funktion (der Pseudo-Class) wieder
function f() { }
schreiben kann.
und this.f = function() { } dass es eine Public-Methode?
Ja, allerdings mit privilegiertem Zugriff auch auf die privaten Methoden und Eigenschaften des Objektes.
Das hat mich nämlich bisher schon immer verwirrt, würde aber vieles Erklären was ich bisher nicht verstand im Umgang mit JavaScript.
JavaScript is the world's most misunderstood programming language. Douglas Crockford
Wenn myCallback dann dennoch wieder andere Methoden dieser Instanz aufrufen kann dann wohl ja.
Kann es:
function obj() {
var self = this;
var myCallback = function(req) {
self.publicMethod(req);
privateMethod(req);
}
this.publicMethod = function(e) {
alert("from public method: " + e)
}
function privateMethod(e) {
alert("from private method: " + e)
}
Request( function(e) { myCallback(e) } );
}
function Request(callback) {
// simuliert einen Ajax Request
window.setTimeout( function() { callback('ich bin callback') }, 1000);
}
var myObj = new obj();
myObj.publicMethod("Hallo Welt");
viele Grüße
Axel