Hallo,
ich habe in meiner Lib eine Funktion (blinker) die von setIntervall alle 500ms aufgerufen wird.
Mach aus dieser Funktion ein Objekt, erstelle von diesem Objekt eine Instanz und ruf dann alle 500ms eine entsprechende Methode dieser Instanz auf, die als Inhalt den bisherigen Code einer blinker-Funktion hat.
Das würde erstmal syntaktisch nichts ändern. Aber...
Nun möchte ich andere Funktionen (z.B. Hintergrund wechsle rot/grün) von dieser Funktion "blinker" aufrufen, jedoch nicht das ich die Funktion "blinker" verändere (Aufruf des Funktionsnames in der Funktion blinker) sondern irgenwie meine Funktion "changeBackground(fc,bc)" dynamisch an das event "setIntervall" oder an den Aufruf "blinker" binde.
...du kannst nun folgendes tun: du lässt dein blinker-Objekt zusätzlich noch ein Array speichern und gibst dem blinker-Objekt eine Methode, mit der sich ein anderes Objekt in diesem Array speichern kann ("registrierung").
Und dann modifizierst du deine blinkermethode so, dass sie bei jedem Aufruf das Array durchgeht und von jedem im Array gespeicherten Objekt eine entsprechende Methode aufruft. Diese Methode (die immer gleich lautet) musst du natürlich in deinen anderen Objekten entsprechend implementierung und dort dafür sorgen, dass dann die gewünschte Funktionalität ausgeführt wird.
Siehe: http://de.wikipedia.org/wiki/Besuchermuster
Wie und ob sowas überhaupt geht.... keine Ahnung.
Falls du nicht objektorientiert programmierst, wirst du dies allerdings zunächst lernen müssen. Aber glaub mir, das lohnt sich durchaus.
Ich möchte einfach auf meinen Webseiten Funktionen aufrufen, die automatisch von der "lib" Funktion "blinker" aufgerufen werden.
Genau das kannst du dann tun. Und du kannst neue Funktionen hinzufügen, ohne jemals irgendetwas am "blinker" zu ändern.
Ich hoffe es ist einigermaßen klar erklärt.
Ich hoffe meins auch. ;)