Wie kann ich wiederverwendbares Javascript schreiben?

Habe ich angefangen, zu wickeln meine Funktionen innerhalb von Objekten, z.B.:

var Search = {
  carSearch: function(color) {
  },
  peopleSearch: function(name) {
  },
  ...
}

Dies ist sehr hilfreich, mit Lesbarkeit, aber ich habe immer noch Probleme mit reusabilty. Um genauer zu sein, die Schwierigkeit liegt in zwei Bereichen:

  1. Empfangen Parameter. Viele Male habe ich eine Suchmaske mit mehreren Eingabefeldern und einem button zum aufrufen der javascript search-Funktion. Ich muss entweder einen Haufen code in das onclick der Schaltfläche zum abrufen und dann martial die Werte aus den Eingabefeldern in die Funktion aufrufen, oder ich habe zu fest die HTML-input-Feld mit Namen/IDs, so dass ich später abrufen, Sie mit Javascript. Die Lösung habe ich sich auf für ist die übergabe der Feld-Namen/IDs in der Funktion, die er verwendet, zum abrufen der Werte aus den Eingabefeldern. Dies ist einfach, aber scheint wirklich unpassend.
  2. Zurückgeben von Werten. Die Wirkung der meisten Javascript-Aufrufe neigt dazu, in dem einige visuelle auf dem Bildschirm direkt ändern, oder als ein Ergebnis einer anderen Aktion, die in dem Aufruf. Wiederverwendbarkeit ist toast wenn ich diese Bildschirm-verändernde Wirkung, die am Ende einer Funktion. Zum Beispiel, nachdem Sie eine Suche abgeschlossen ist, brauche ich zur Anzeige der Ergebnisse auf dem Bildschirm.

Wie andere mit diesen Problemen? Putting mein denken Mütze auf, führt mich zu glauben, dass ich brauche, um eine Seite-spezifische Schicht von Javascript zwischen jedem Gebrauch in meiner Anwendung und die generischen Methoden, die ich erstellen, die verwendet werden, Anwendung-breit. Mit dem vorherigen Beispiel würde ich einen suchen-button, dessen onclick ruft eine myPageSpecificSearchFunction, in denen das such-Feld-IDs/Namen hartcodiert sind, die Streckenposten die Parameter und ruft die generische Suche-Funktion. Die generische Funktion wäre die Rückgabe von Daten/Objekten/Variablen und nicht direkt Lesen oder änderungen an die DOM. Die Seiten-spezifische such-Funktion würde dann diese Daten erhält Sie zurück und ändern den DOM angemessen.

Bin ich auf dem richtigen Weg oder gibt es eine bessere Muster zu handhaben, die Wiederverwendung von Javascript-Objekten/Methoden?

Kommentar zu dem Problem
Empfehlen, so dass dies ein community-wiki, es ist ziemlich subjektiv. Kommentarautor: T.J. Crowder

InformationsquelleAutor der Frage aw crud | 2010-04-09

Schreibe einen Kommentar