mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 19.04.2024 01:25 Benutzername: Passwort: Auto-Login

Thema: javascript observer, kleine Knobelei vom 05.06.2009

Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> javascript observer, kleine Knobelei
Autor Nachricht
bacon
Threadersteller

Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Fr 05.06.2009 10:35
Titel

javascript observer, kleine Knobelei

Antworten mit Zitat Zum Seitenanfang

Kurze Beschreibung: Callbacks mal anders herum. Ein Observer wird an eine beliebige Methode gebunden. Sobald diese aufgerufen wird, wird der callback getriggert. Das ganze in nativem Javascript, crossbrowsertauglich und ohne Framework.

Code:

addObjectObserver : function(subject, method_name, callback)
  {
    for(var i in subject)
    {
      if(typeof subject[i] === "function" && subject[i] === subject[method_name])
      {
        var original_function = subject[i];
        subject[i] = function()
        {
          var retval = original_function(arguments);
          callback(subject, method_name, retval);
          return retval;
        }
      }
    }
  }

var my_object = {
  test : function(my_params)
  {
    return my_params;
  }
}

addObjectObserver(my_object, "test", function(subject, method_name, retval)
{
  console.log("my_object.test called.");
});

my_object.test();


So weit, so schlecht.Tut, aber ist zu simpel.

Todo:
1.) Viele observer an eine Funktion binden (geht nun)
2.) Function.prototype erweitern und durch Introspektion an den Funktions- bzw. Referenznamen kommen.
3.) Das ganze möglichst hübsch.

Ideen, Vorschläge? (Bitte nur in Code, kein "sowas gibts doch schon bei dojo")


Zuletzt bearbeitet von bacon am Fr 05.06.2009 10:45, insgesamt 3-mal bearbeitet
  View user's profile Private Nachricht senden
Ähnliche Themen kleine Frage zu JavaScript
Javascript - Kleine Denkhilfe bitte ...
[javascript] mit <select> feld wert an javascript funk
CMS für kleine Websites
Kleine Gif für Umblättereffekt…
Einfache kleine Frage zu DIV's
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.