Ich hatte eine "Klasse" definiert und nur eine Instanz davon erstellt. Die Instanz besaß eine Mitgliedsfunktion, die am Ende herumgereicht werden würde (es ist ein Maus-Handler, aber das ist nicht wichtig). Da ich immer nur eine Instanz meiner "Klasse" erstellen würde, beschloss ich, sie als Singleton umzuschreiben, indem ich ein Objektliteral verwendete.
Ich habe also
var mySingleton = {
theObjects : [];
}
mySingleton.mouseHandler = (function() {
var that = this;
return function (e) {
for (var indx = 0; indx < that.theObjects.length; indx++) {
// do something to that.theObjects[indx];
}
}
}());
mySingleton.addObject = function(newObj) {
this.theObjects.push(newObj);
}
Wenn ich jedoch versuche, diesen Code zu verwenden (nachdem ich ein paar Objekte hinzugefügt habe), erhalte ich ständig die Fehlermeldung that.theObjects is undefined. Er bezieht sich auf die Zeile in der for-Schleife.