Implementing Code BlocksProblem: Sie wollen Code-Blöcke in Ihrem JavaScript-Anwendungen zu implementieren, um Ihren Code zu optimieren. Theory Implementing Code-Blöcke ist eine Programmiersprache, Technik, die auf den ersten Blick scheint ein Problem, das es nicht gibt zu lösen. Man könnte sogar sagen, dass ein Code-Block ist nichts anderes als ein Phantasie-Rückruf. Code-Blöcke in JavaScript tragen Ähnlichkeiten mit Rückrufe. Aber in Sprachen wie Ruby, Code-Blöcke sind Teil der Programmiersprache und sorgen für einfachere Code. Code-Blöcke verwenden Sie, wenn Sie eine Liste durchlaufen oder eine Funktion zurück, wo Sie verknüpfen möchten mehreren Informationen mit einem Anrufer. Solution Let's erste Blick auf ein einfaches Beispiel: einen Code in a-squared-Serie zu erstellen. Quelle: / website / ROOT / ajaxrecipes / javascript / codeblocks.html Funktion GenerateSquaredSeries (LastValue) (var array = new Array (); for (var c1 = 0; c1 <LastValue; c1 + +) ( Array.push (C1 * c1);) Return array;)
Um eine Reihe von Zahlen, die den Platz zu generieren, ist eine Schleife erstellt, die zählt von Null auf den gewünschten höchsten Wert. Für jede Iteration der Wert c1 * c1 (Quadrat der c1) wird auf Array angehängt. Sobald die Schleife beendet hat, wird das Array zurückgegeben. Das Beispiel zeigt ein Problem der Schleife: Die Schleife, und die Initialisierung der Schleife wird generische Infrastruktur-Code. Der kühne Code zeigt die anwendungs-spezifischen Code für jede Iteration der Schleife aufgerufen. Die Applikations-spezifische Code ist eingezwängt zwischen der for-Schleife Code. Abstraktion der Sandwich-Code erfordert einen Rückruf, der wie folgt aussieht. Quelle: / website / ROOT / ajaxrecipes / javascript / codeblocks.html Funktion GenerateSeries (LastValue, Callback) (Var array = new Array (); for (var c1 = 0; c1 <LastValue; c1 + +) ( Rückruf (array, c1);) Return array;) Die modifizierte GenerateSeries Funktion einen zusätzlichen Parameter, die die Callback-Funktion für jede Iteration aufgerufen wird. Die Callback-Funktion dient der Durchführung der Business-Logik, und so geht die instanziiert Array und klickt, um den Rückruf. Die Callback-Verfahren kann dann die übergebenen Parameter (array und C1) aber es will. Ein Beispiel dafür folgt. Quelle: / website / ROOT / ajaxrecipes / javascript / codeblocks.html Funktion ExampleSeriesSquare () (var array = GenerateSeries (10, function (array, value) ( Array.push (C1 * c1);));) Die ExampleSeriesSquare Funktion hat eine einzige Funktion aufrufen, die Anrufe GenerateSeries. Ein anonymer Funktion besteht darin, GenerateSeries dieses Prozesses verabschiedete das übergebene Array und Wert. Der Code in der Umsetzung der anonymen Funktion ist identisch mit der Anwendungslogik Code in GenerateSquaredSeries, das ist ziemlich offensichtlich. Das Beispiel anonyme Funktion ist ein Code-Block. Wie bereits erwähnt, einen Code-Block ist wie ein Rückruf. Was macht einen Rückruf anderes als ein Code-Block ist, dass ein Code-Block in allgemeiner Art und stellt eine Trennung der beiden Teile des Codes. Um den Code aus einer Callback-Szenario Konvertieren in ein Code-Block Szenario GenerateSeries und ExampleSeriesSquare sind wie folgt umgeschrieben folgt: Funktion GenerateSeriesMod (LastValue, callback) (for (var c1 = 0; c1 <LastValue; c1 + +) (callback (c1);)) function ExampleSeriesSquareMod () (var array = new Array (); GenerateSeries (10, Funktion ( value) (Array.push (C1 * c1);));) Quelle: / website / ROOT / ajaxrecipes / javascript / codeblocks.html Funktion CustomList () (this.array = new Array ();) CustomList.prototype.iterate = function (callback) (for (item in this.array) (callback (item );)) CustomList.prototype.addItems = function () (for (var c1 = 0; c1 <arguments.length; c1 + +) (this.array.push (arguments [c1]);)) Im Beispiel ist ein CustomList Klasse definiert. Die benutzerdefinierte Liste hat zwei Funktionen: durchlaufen und addItems. Die addItems Funktion wird verwendet, um ein Element zu einer Liste hinzuzufügen, und die Funktion durchlaufen durchläuft jedes der Elemente in der Schleife, und fordert einen Rückruf. Die Callback-Parameter stellt einen Code-Block. Ein Beispiel für die Verwendung CustomList ist wie folgt. Quelle: / website / ROOT / ajaxrecipes / javascript / codeblocks.html class_list_iterate: function () (var list = new CustomList (); list.addItems ( "Hallo", "Welt"); list.iterate (function (item) (info ( "class_list_iterate", item);));) CustomList instanziiert wird und für die variablen Liste. Ein Punkt wird in die Liste mit den addItems-Funktion hinzugefügt. Beachten Sie, dass addItems ist Multi-Parameter-aware. Oft in Programmiersprachen, müssen Sie die AddItem-Methode aufrufen, um ein Element, um eine Liste so oft gibt es Elemente hinzuzufügen. Die addItems Verfahren ist, daß Sie so viele Parameter, wie Sie angeben, wie anders, und jeder dieser Parameter stellt ein einzelnes Element zu der Liste hinzufügen. Um die Liste, einen Codeblock durchlaufen definiert ist, und bei der Umsetzung des Codes zu blockieren, können die Daten verarbeitet werden, aber er will den Anrufer. In diesem Beispiel werden die Elemente-Ausgang mit der Info-Methode. Code-Blöcke können auch verwendet werden, zu generieren und Rückgabewerte Prozess. Betrachten wir ein Beispiel, dass eine Funktion verwendet, um die Schließung von Statistiken einen Börsenticker finden schafft. Im Anschluss ist die Umsetzung des Codes mit einem traditionellen nicht-Code-Block-Ansatz: Funktion StockTracerTraditional (ticker) (if (Ticker == "YHOO") (var obj = new Object (); this.company = "Yahoo"; this.close = 23; this.change = -1; return obj;) return null;) function CallerStockTracer () (var obj = StockTracerTraditional ( "YHOO"); if (obj! = null) (info ( "return_value", "Firma =" + + obj.company "close =" + + obj.close ➥ "change =" + obj.change);)) Die StockTracerTraditional Funktion hat einen einzigen Parameter: der Ticker zu finden. Wenn die Ticker gefunden wird, wird ein Objekt instanziiert und die entsprechenden Eigenschaften zugeordnet sind. Sobald die Eigenschaften zugeordnet wurden, ist die instanziiert Objekt zurückgegeben. Die Umsetzung verlangt CallerStockTracer Funktion StockTracerTraditional mit den entsprechenden Ticker und das zurückgegebene Objekt Instanz obj zugewiesen. Dann wird entschieden, zu überprüfen, ob obj ist null oder nicht. Wenn die Ticker gefunden wurde, dann obj wird nicht Null sein und das Objekt verarbeitet werden können. Andernfalls kann die Funktion gibt, ohne etwas zu tun. Das Beispiel-Code vereinfacht werden mithilfe von Code-Blöcke. Die folgenden umgeschrieben Umsetzung der StockTracerTraditional verwendet Code-Blöcke Ergebnisse. Quelle: / website / ROOT / ajaxrecipes / javascript / codeblocks.html Funktion StockTracker (Ticker, callback) (if (Ticker == "YHOO") (callback ( "Yahoo", 23, -1);)) Die StockTrader Funktion ist neu geschrieben und die gleiche Entscheidung zu blockieren den Ticker finden wird. Was neu ist, ist die Verwendung der Rückruf, der aufgerufen wird, wenn ein Ticker gefunden wird. Überlegen Sie, was passiert, wenn der YHOO Ticker gefunden wird: der Rückruf ist mit drei Parametern aufgerufen. Wenn ein Code-Block nicht verwendet wurden, dann wäre ein Objekt instanziiert werden und an den Aufrufer zurückgegeben. Da ein Code-Block verwendet wird, besteht keine Notwendigkeit zu überprüfen, ob Daten zurückgegeben werden, wie das folgende Anrufer-Code dargestellt. Quelle: / website / ROOT / ajaxrecipes / javascript / codeblocks.html return_value: function () (StockTracker ( "YHOO", function (Firma, in der Nähe, ändern) (/ / Mach was mit den Daten info ( "return_value", "Firma =" + Firma + "in der Nähe =" + close + "change =" + ➥ ändern);));) Calling StockTracker mit dem Ticker-als YHOO wird in der anonymen Funktion Ergebnis der Suche nach Leben gerufen. Bei der Durchführung der anonymen Funktion würde der Code, der ausgeführt wird, wenn Daten wurden erfolgreich ausgeführt. Mit Code-Blöcke, der Anrufer nicht zu einer Entscheidung Struktur umzusetzen, da der anonyme Funktion aufgerufen werden, wenn der Ticker vorhanden ist. Code-Blöcke sind ein Mittel zum Zweck und nicht automatisch, dass Sie nie Entscheidung Blöcken oder verwenden sollten, anzulegen Schleifen mit Anwendungslogik. Code-Blöcke liefern amechanism zu vereinfachen und zu entkoppeln Code aus einem anderen. Wenn Sie Code-Blöcke, denken Sie daran die folgenden: • Code-Blöcke sind wie Rückrufe, es sei denn, dass Code-Blöcke die Trennung von Logik zu fördern, indem Teile des Codes unabhängig voneinander. • Der Vorteil von Code-Blöcke ist, dass sie Einzelergebnisse Prozess kann mehrere Ergebnisse oder keine Ergebnisse. Die Telefonvorwahl nicht um festzustellen, ob die Ergebnisse gearbeitet. • Verwenden Sie die dynamische Natur der JavaScript-Funktion können mehrere Parameter einer Funktion Prozess als eine Menge. • Code-Blöcke können als Alternative zu der return-Anweisung verwendet werden, um komplexere Daten zu senden. Wie im Rezept 2-17 erwähnt, sind Code-Blöcke der perfekte Weg, um Daten an den Aufrufer zurück, ohne einen Rückgabetyp verwenden. Ein Artikel eingereicht von Sonja Lande Disclaimer:Unsere Website ist nicht verantwortlich für den Inhalt dieses Artikels. Webarticles ist eine kostenlose Informationsquelle. Wichtig: Dieser Artikel "Implementing Code Blocks" wurde durch ein automatisches Software übersetzt. Wir fühlen uns leid für alle Rechtschreibfehler, die möglicherweise aufgetreten sind. Vielen Dank für Ihr Verständnis.
|
|||||
| Online: 432 users browsing the articles directory |
|
|