Ich habe beschlossen, dass ich meine JavaScript-Programmierkenntnisse sowie meine OO Fähigkeiten verbessern muss. Ich lese gerade einige Bücher durch, aber manchmal ist es schwierig, die Theorie in den Griff zu bekommen, ohne zuerst einige praktische Beispiele zu sehen. Also habe ich eine theoretische Frage zu "Best Practices" für das folgende Szenario ...Objektorientierte JavaScript-Best Practices Frage: Wie konfiguriere ich meine Objekte für die folgenden
Ich möchte ein OO-Skript erstellen, das eine Liste der vom Server abgerufenen Suchbegriffe anzeigt. Ich möchte auch in der Lage sein, jeden Searchtag-Datensatz an Ort und Stelle zu bearbeiten.
Zur Zeit mache ich das prozedural mit einem bisschen Hilfe von der jQuery-Bibliothek:
Ich akzeptiere eine JSON-codierte Liste der searchtag Datensätze vom Server. Es sieht wie folgt aus:
[
{ "searchTagName" : "tagOne", "searchTagID" : "1" },
{ "searchTagName" : "tagTwo", "searchTagID" : "2" },
{ "searchTagName" : "tagThree", "searchTagID" : "3" },
etc...
]
ich die JSON direkt in jTemplates Dump die entsprechende HTML, wie so zu erstellen:
$("#searchTagList")
.setTemplateElement("template_searchTagList")
.processTemplate(searchTagData);
Schließlich möchte ich es möglich sein, jede searchtag mit einem Editier- zu ändern in-Place-Verfahren, so lege ich ein vorgefertigtes edit-in-Place-Verfahren zu jedem hTML-Elemente:
$(".searchTag").editInPlace();
Diese sehr gut prozedural funktioniert. Und vielleicht wäre es das Klügste, wenn man gut genug in Ruhe gelassen würde. :) Aber, um zu argumentieren, was ist der beste Weg, um so etwas aus einer OO-Perspektive zu schreiben.
Sollte ich ein einzelnes Objekt "searchTagList" mit Methoden für jeden der oben beschriebenen Schritte haben?
var searchTagList =
{
searchTagData: JSONdata,
renderList: function() { /*send to jTemplates */ }
bindEdit: function() { /* attach edit-in-place */ }
}
Oder ist das falsch? (Es scheint, als würde ich nur meine prozeduralen Funktionen in ein Objekt einfügen.) Sollte ich irgendwie die JSON-Daten in Instanzen von jedem Suchtag analysieren und dann einzelne Methoden an jedes Suchtag anhängen? (Dies scheint wie viel Overhead, für keinen Gewinn.)
Entschuldigung im Voraus, wenn es scheint, als ob ich auf Haare picken. Aber ich möchte dieses Zeug wirklich in meinem Kopf haben.
Danke,
Travis
Danke für die Antwort. Ich sollte klären. Wenn ich prozedural meinte, meinte ich, dass ich im globalen Raum drei verschiedene Funktionen habe. Eine, um JSON vom Server abzurufen. Eine, um das JSON in HTML umzuwandeln. Und eine abschließende Funktion, um eine Edit-in-Place-Methode an die HTML-Knoten anzuhängen. Es stimmt, dass jede dieser Funktionen OO jQuery-Techniken intern verwendet. Aber ich mache mir mehr Gedanken darüber, wie man die drei Funktionen auf höherer Ebene am besten organisiert, die derzeit sehr prozesstechnisch aussehen - dh wenn sie alle in einem Objekt zusammengefasst sind. Ich werde YUI3 anschauen, danke. – Travis