La aplicación de bloques de código

Problema: Se quiere poner en práctica los bloques de código JavaScript en sus aplicaciones, para optimizar su código. Teoría de los bloques de código de aplicación es una técnica de programación que a primera vista parece resolver un problema que no existe. Algunos incluso se podría decir que un bloque de código no es más que una devolución de llamada de lujo. Los bloques de código en JavaScript no tienen similitudes con las devoluciones de llamada. Sin embargo, en lenguajes como Ruby, bloques de código son parte del lenguaje de programación y para hacer código más simple. Utiliza bloques de código cada vez que se itera una lista o una función de retorno si se quiere asociar múltiples piezas de información con la persona que llama. Solución Veamos primero vistazo a un ejemplo sencillo: algo de código para crear una serie al cuadrado.

 Fuente: / web / ROOT / ajaxrecipes / JavaScript / GenerateSquaredSeries función codeblocks.html (lastValue) (var array = new Array (); for (var c1 = 0; c1 <lastValue; c1 + +) ( array.push (c1 * c1);) Return array;)
  

Para generar una serie de números que son la plaza, se crea un bucle que cuenta desde cero hasta el valor máximo deseado. Para cada iteración, el valor de C1 * C1 (plaza de C1) se inserta en la matriz. Una vez que el bucle ha finalizado, la matriz se devuelve. El ejemplo ilustra un problema de bucle: el bucle, y la inicialización del bucle, es el código de la infraestructura de genéricos. El código en negrita se muestra la aplicación del código específico, llamado por cada iteración del bucle. La aplicación de código específico se encuentra entre la de código de bucle. Abstraer el código insertado requiere una devolución de llamada, que se parece a la siguiente.

 Fuente: / web / ROOT / ajaxrecipes / JavaScript / GenerateSeries función codeblocks.html (lastValue, de devolución de llamada) (Var array = new Array (); for (var c1 = 0; c1 <lastValue; c1 + +) ( de devolución de llamada (array, c1);) Return array;)

La función de GenerateSeries vez tiene un parámetro adicional, que es la función de devolución de llamada para cada iteración. La función de devolución de llamada sirve el propósito de llevar a cabo la lógica de negocio, y por lo tanto pasa la matriz y el número de instancias para la devolución de llamada. La devolución de llamada puede procesar los parámetros pasados (matriz y C1), sin embargo que le plazca. Un ejemplo de esto sigue.

 Fuente: / web / ROOT / ajaxrecipes / JavaScript / codeblocks.html función ExampleSeriesSquare () (var = array GenerateSeries (10, function (array, value) ( array.push (c1 * c1);));)

La función ExampleSeriesSquare tiene una llamada a la función única que llama a GenerateSeries. Una función anónima se pasa a GenerateSeries que procesará el pasado-en conjunto y el valor. El código de la aplicación de la función anónima es idéntico al código de la lógica de aplicación en GenerateSquaredSeries, que es bastante obvio. El ejemplo de la función anónima es un bloque de código. Como se mencionó anteriormente, un bloque de código es como una devolución de llamada. ¿Qué hace que una devolución de llamada diferentes a un bloque de código es que un bloque de código es de carácter general y representa una separación de dos piezas de código. Para convertir el código de un escenario de devolución de llamada en un escenario de bloque de código, GenerateSeries y ExampleSeriesSquare se reescriben como sigue:

función GenerateSeriesMod (lastValue, callback) (for (var c1 = 0; c1 <lastValue; c1 + +) (callback (c1);)) function ExampleSeriesSquareMod () (var array = new Array (); GenerateSeries (10, la función ( valor) (array.push (c1 * c1);));)

 Fuente: / web / ROOT / ajaxrecipes / JavaScript / codeblocks.html función CustomList () (this.array = new Array ();) CustomList.prototype.iterate = function (callback) (for (tema en this.array) (callback (tema );)) CustomList.prototype.addItems = function () (for (var c1 = 0; c1 <arguments.length; c1 + +) (this.array.push (argumentos [C1]);))

En el ejemplo, una clase CustomList se define. La lista personalizada tiene dos funciones: repetir y addItems. La función addItems se utiliza para añadir un elemento a una lista, y la función de iteración reitera cada uno de los elementos en el bucle, y pide una devolución de llamada. El parámetro de devolución de llamada representa un bloque de código. Un ejemplo del uso de CustomList es la siguiente.

 Fuente: / web / ROOT / ajaxrecipes / JavaScript / codeblocks.html class_list_iterate: function () (var list = CustomList nuevo (); list.addItems ( "hola", "mundo"); list.iterate (function (elemento) (info ( "class_list_iterate", tema);));),

CustomList se crea una instancia y asignado a la lista de variables. Un elemento se agrega a la lista utilizando la función addItems. Tenga en cuenta que es addItems múltiples parámetro-Aware. A menudo, en los lenguajes de programación, es necesario llamar al método AddItem para agregar un elemento a una lista con la frecuencia que hay elementos. El método addItems es diferente en que se pueden especificar tantos parámetros como desees, y cada uno de estos parámetros representa un solo elemento para agregar a la lista. Para recorrer la lista, un bloque de código se define, y en la aplicación del bloque de código, los datos pueden ser procesados sin embargo la persona que llama que le plazca. En este ejemplo, los artículos se envían utilizando el método de información. Bloques de código también puede ser utilizado para generar y procesar los valores de retorno. Veamos un ejemplo que crea una función utilizada para encontrar las estadísticas de cierre de una marca de cotización. Lo que sigue es la aplicación del código utilizando un enfoque tradicional bloque de código:

función StockTracerTraditional (ticker) (if (símbolo == "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 ( "valor_retorno", "Empresa =" + + obj.company "cerrar =" + + obj.close ➥ "cambio =" + obj.change);))

La función StockTracerTraditional tiene un solo parámetro: el símbolo que se encuentran. Si se descubre que el símbolo, un objeto es una instancia y las propiedades adecuadas son asignados. Una vez que las propiedades han sido asignados, se devuelve el objeto con instancias. La implementación de la función CallerStockTracer pide StockTracerTraditional con el símbolo apropiado, y la instancia del objeto devuelto es asignado a obj. Luego se toma una decisión para comprobar si obj es nula o no. Si la cotización se ha encontrado, entonces obj no será nulo y el objeto puede ser procesada. De lo contrario, la función devuelve sin hacer nada. El código de ejemplo se puede simplificar el uso de bloques de código. La aplicación reescrito siguientes StockTracerTraditional utiliza los resultados de los bloques de código.

 Fuente: / web / ROOT / ajaxrecipes / JavaScript / codeblocks.html función StockTracker (símbolo, callback) (if (símbolo == "YHOO) (callback (" Yahoo ", 23, -1);))

La función de StockTrader se reescribe, y el bloque de la misma decisión para encontrar el símbolo se utiliza. Lo que es nuevo es la utilización de la devolución de llamada que se llama cuando se encuentra un ticker. Consideremos lo que ocurre si se encuentra el símbolo YHOO: la devolución de llamada se llama con tres parámetros. Si un bloque de código no se utilizaron, a continuación, un objeto tendría que ser una instancia y regresó a la persona que llama. Porque se utiliza un bloque de código, no hay necesidad de verificar si los datos se devuelve, como se ilustra en el código de llamadas siguiente.

 Fuente: / web / ROOT / ajaxrecipes / JavaScript / valor_retorno codeblocks.html: function () (StockTracker (YHOO ", (función de la empresa, cerca, cambio) (/ / hacer algo con la información de datos (" valor_retorno "," Empresa = " + Empresa + "close =" + cerca + "cambio =" + ➥ cambio);));),

Llamadas StockTracker con el símbolo de encontrar como YHOO dará lugar a la función anónima que se llama. En la aplicación de la función anónima sería el código que se ejecuta cuando los datos han sido devueltos con éxito. Con bloques de código, la persona que llama no tiene que poner en práctica una estructura de decisión, porque la función anónima que se llamará sólo si el símbolo existe. Bloques de código son un medio para un fin, y no implica que nunca se debe utilizar bloques de decisión o de crear bucles con la aplicación lógica. Los bloques de código proporcionar amechanism para simplificar y separar el código de otro. Cuando se utiliza bloques de código, recuerde lo siguiente:

• Los bloques de código son como las devoluciones de llamada, salvo que los bloques de código de promover la separación de la lógica, haciendo que los pedazos de código independiente de la de la otra.

• La ventaja de los bloques de código es que se pueden procesar los resultados individuales, varios resultados, o no los resultados. El código de llamada no tiene que determinar si los resultados de trabajo.

• Uso de la naturaleza dinámica de JavaScript, una función capaz de procesar varios parámetros como un conjunto.

• Los bloques de código se puede utilizar como una alternativa a la declaración de volver a enviar los datos más complejos. Como se menciona en la receta de 2-17, los bloques de código son la manera perfecta para devolver datos a la persona que llama sin tener que utilizar un tipo de retorno.

un artículo presentado por Sonja Lande


Descargo de responsabilidad:Nuestro sitio web no es responsable por el contenido de este artículo. Webarticles es un recurso de información gratuito.
Importante: Este artículo "Implementación de bloques de código", fue traducida por un software automático. Sentimos pena por los errores de ortografía que pueda haber ocurrido. Gracias por su comprensión.


Online: 287 users browsing the articles directory