Hallo,
Das "new" versuche ich zu umgehen
Sonderlich geholfen hat dir der Verzicht auf Konstruktoren bei der Organisation deines Codes anscheinend nicht.
Naja, wenn ich nicht weiß, wie das Prinzip umsetzen? Ich habe zwei Objekte, die jede mittels eine Funktion generiert werden. Ein Farbobjekt mit vier Eigenschaften und eine Farbverwaltung, die drei Instanzen des Farbobjektes (rot, grün, blau) beinhaltet sowie die Methode, den aktuellen Farbwert zu ändern für jede Farbe.
In der window.onload-Funktion ist die Instanz des Farbverwalters geclosured und deshalb für die Funktion, die die Farbe ändert, zugänglich, da diese in der window.onload-Funktion definiert wird.
Ob das Prinzip sinnig ist oder optierungsfähig weiß ich immer noch nicht. Das "new" brauche ich dabei eigentlich sowieso nicht.
und notiere deshalb das Objekt als Literal (wie von Crockford empfohlen). Da klappt das mit dem that = this; nicht ...;
Das Prinzip sind Closures, dazu brauchst du nicht this, sondern einfach eine Referenz auf das Objekt.
function makeFoo () {
var foo = {
func: function () {
alert(foo);
}
};
return foo;
}
setTimeout(makeFoo().func, 1);
Genau, die Referenz auf die Farbverwaltung (colorHandler = createColorHandler(255, 168, 136);) habe ich doch dann in der Funktion "myBgColorChange", oder?
Gruß
jobo