JavaScript Problem mit Objekten

Kantholy

Lt. Junior Grade
Registriert
Aug. 2006
Beiträge
323
hallo, kann mir wer bei diesem Problemchen hier helfen:

Code:
Test = function(msg) {
	this.msg = msg
	self = this;
	setTimeout(function() {
		self.doit();
	}, 1000);
}

Test.prototype.doit = function() {
	if(this.onmessage)
		this.onmessage(this.msg);
}
Test.onmessage = null;
Test.msg = "";


a = new Test("alert");

a.onmessage = function(e) {
	alert(e);
}

b = new Test("console");

b.onmessage = function(e) {
	console.log(e);
}

normal sollte hier ja nach dem seitenaufruf nach 1. Sekunde erst ein alert mit "alert" kommen, und danach in der JS Konsole "console" ausgegeben werden...
Allerdings fehlt das Alert, weil das "b" Objekt irgendwie das "a.onmessage" überschreibt... WARUM?!
 
Bei mir funktioniert's, wenn ich in Zeile 3
Code:
var self = this;
schreibe. Genau kann ich dir aber auch nicht erklären, warum :)
 
Zurück
Oben