Blocos de código de execuçãoProblema: Você deseja executar blocos de código em suas aplicações JavaScript, para otimizar seu código. Blocos de código Teoria de execução é uma técnica de programação que, à primeira vista parece resolver um problema que não existe. Alguns podem até dizer que um bloco de código não é nada mais do que uma chamada fantasia. Blocos de código em JavaScript que semelhanças suportar chamadas de retorno. Mas, em linguagens como Ruby, blocos de código são parte da linguagem de programação e tornar mais simples o código. Você pode usar blocos de código, sempre que você iterar uma lista ou uma função de retorno que você deseja associar várias peças de informação com um chamador. Solução Vamos primeiro veja um exemplo simples: um código para criar uma série quadrado. Fonte: / website / ROOT / ajaxrecipes / javascript / GenerateSquaredSeries função codeblocks.html (lastValue) (var array = new Array (); for (var c1 = 0; c1 lastValue <; c1 + +) ( array.push (c1 * c1);) Return array;)
Para gerar uma série de números que estão na praça, é criado um laço que conta de zero até ao valor máximo desejado. Para cada iteração, o valor de c1 * c1 quadrado (de c1) é empurrado para matriz. Uma vez que o loop foi concluída, a matriz é retornada. O exemplo ilustra um problema de loop: o laço, ea inicialização do loop, é um código de infra-estrutura genérica. O código em negrito mostra a aplicação do código específico, chamado para cada iteração do loop. A aplicação do código específico é imprensada entre o código para o loop. Abstrair o código colada exige um retorno, que se parece com o seguinte. Fonte: / website / ROOT / ajaxrecipes / javascript / GenerateSeries função codeblocks.html (lastValue, callback) (Var array = new Array (); for (var c1 = 0; c1 lastValue <; c1 + +) ( callback (matriz, c1);) Return array;) A função GenerateSeries vez tem um parâmetro adicional, que é a função de retorno de chamada para cada iteração. A função de retorno serve o propósito de realizar a lógica de negócios e, assim, passa a matriz instanciado e número para o retorno. O retorno pode processar os parâmetros passados (matriz e C1) no entanto, agrada. Um exemplo desse modo. Fonte: / website / ROOT / ajaxrecipes / javascript / codeblocks.html função ExampleSeriesSquare () (var array = GenerateSeries (10, function (array, value) ( array.push (c1 * c1);));) A função ExampleSeriesSquare tem uma única chamada de função que chama GenerateSeries. Uma função anônima é passado para GenerateSeries que irá processar os passados através da matriz e do valor. O código na implementação da função anônima é idêntico ao código de lógica da aplicação em GenerateSquaredSeries, que é bastante óbvio. O exemplo a função anônima é um bloco de código. Como mencionado anteriormente, um bloco de código é como uma chamada de retorno. O que faz uma chamada de retorno diferente de um bloco de código é que um bloco de código é de natureza geral e representa uma separação das duas partes do código. Para converter o código de um cenário de retorno em um cenário de bloco de código, GenerateSeries e ExampleSeriesSquare são reescritas como segue: função GenerateSeriesMod (lastValue, callback) (for (var c1 = 0; c1 lastValue <; c1 + +) (callback (c1);)) function ExampleSeriesSquareMod () (var array = new Array (); GenerateSeries (10, (função value) (array.push (c1 * c1);));) Fonte: / website / ROOT / ajaxrecipes / javascript / codeblocks.html função CustomList () (this.array = new Array ();) CustomList.prototype.iterate = function callback () (for (item this.array) (callback (item );)) CustomList.prototype.addItems = function () (for (var c1 = 0; c1 <arguments.length; c1 + +) (this.array.push (argumentos [c1]);)) No exemplo, uma classe CustomList está sendo definido. A lista personalizada tem duas funções: iterate e addItems. A função addItems é usado para adicionar um item a uma lista, ea função de percorrer itera cada um dos elementos no circuito, e solicita um retorno. O parâmetro callback representa um bloco de código. Um exemplo do uso CustomList é a seguinte. Fonte: / website / ROOT / ajaxrecipes / javascript / codeblocks.html class_list_iterate: function () (var lista = CustomList novo (); list.addItems ( "Olá", "mundo"); list.iterate (function (item) (info ( "class_list_iterate", item);));) CustomList é instanciado e afectos à lista de variáveis. Um item é acrescentado à lista usando a função addItems. Observe que addItems é múltiplo-parâmetro-consciente. Muitas vezes, em linguagens de programação, você precisa chamar o método AddItem para adicionar um item a uma lista de quantas vezes existem itens. O método addItems é diferente em que você pode especificar como muitos parâmetros como você gosta, e cada um destes parâmetros representa um único item a acrescentar à lista. Para percorrer a lista, um bloco de código é definido, e na implementação do bloco de código, os dados podem ser processados no entanto, agrada ao chamador. Neste exemplo, os itens são produzidos pelo método de info. Blocos de código também podem ser utilizados para gerar e processar os valores de retorno. Vamos considerar um exemplo que cria uma função usada para encontrar as estatísticas de fechamento de uma bolsa de valores. A seguir é a implementação do código utilizando uma abordagem tradicional código de bloco: função StockTracerTraditional (ticker) (if (ticker == "YHOO") (var obj = new Object (); this.company = "Yahoo"; this.close = 23; this.change = -1 obj; return;) return null;) function CallerStockTracer () (var obj = StockTracerTraditional ( "YHOO"); if (obj! = null) (info (return_value "," Empresa = "obj.company + +" close = "+ + obj.close ➥ mudança "=" + obj.change);)) A função StockTracerTraditional tem um único parâmetro: o ticker de ser encontrado. Se o ticker é encontrado, um objeto é instanciado e as propriedades adequadas são atribuídos. Uma vez que as propriedades foram atribuídas, o objeto instanciado é devolvido. A implementação da função CallerStockTracer chamadas StockTracerTraditional com o ticker adequado, ea instância do objeto retornado é atribuído a obj. Então a decisão é feita para verificar se obj é nulo ou não. Se o relógio foi encontrado, então obj não será nulo eo objeto pode ser processado. Caso contrário, a função retorna sem fazer nada. O código de exemplo pode ser simplificado usando blocos de código. A execução seguinte reescrita StockTracerTraditional utiliza os resultados de blocos de código. Fonte: / website / ROOT / ajaxrecipes / javascript / codeblocks.html função StockTracker (ticker, callback) (if (ticker == "YHOO") (callback ( "Yahoo", 23, -1);)) A função StockTrader é reescrito, eo bloco mesma decisão para encontrar o ticker é usado. A novidade é a utilização da chamada que é chamado quando um ticker é encontrado. Considere o que acontece se o ticker YHOO é encontrada: o retorno de chamada é chamado com três parâmetros. Se um bloco de código não foram utilizados, em seguida, um objeto teria que ser instanciado e retornado para o chamador. Como um bloco de código é usado, não há necessidade de verificar se os dados são retornados, como ilustrado pelo código chamador seguinte. Fonte: / website / ROOT / ajaxrecipes / javascript / return_value codeblocks.html: function () (StockTracker ( "YHOO", function (empresa, fechar, mudar) (/ / Faz alguma coisa com a informação de dados (return_value "," Company = + empresa + "close =" + close + "change =" + ➥ mudança);));) Chamando StockTracker com o ticker de encontrar como YHOO resultará na função anônima a ser chamado. Na implementação da função anônima seria o código que é executado quando os dados foram devolvidos com sucesso. Com blocos de código, o chamador não tem de implementar uma estrutura de decisão, porque a função anônima será chamado somente se o relógio existe. Blocos de código são um meio para um fim, e não implica que você nunca deve usar blocos de decisão ou criar laços com a lógica do aplicativo. Blocos de código fornecer amechanism para simplificar e separar o código de outro. Quando você usar blocos de código, lembre-se o seguinte: • Os blocos de código são como os retornos, exceto que blocos de código de promover a separação da lógica, fazendo com que partes do código independentes uns dos outros. • A vantagem de blocos de código é que eles podem processar os resultados individuais, vários resultados, ou nenhum resultado. O código de chamada não tem de determinar se os resultados funcionou. • Utilizar a natureza dinâmica do JavaScript, uma função pode processar vários parâmetros como um conjunto. • Os blocos de código pode ser usado como uma alternativa para a instrução de retorno para enviar dados mais complexos. Conforme mencionado na Receita 2-17, blocos de código são a maneira perfeita para retornar dados para o chamador sem ter que usar um tipo de retorno. um artigo submetido por Sonja Lande Isenção de responsabilidade:O nosso site não se responsabiliza pelo conteúdo deste artigo. Webarticles é uma fonte de informação livre. Importante: Este artigo "Aplicação Blocos de código" foi traduzida por um software automático. Nós sentimos muito por quaisquer erros de ortografia que pode ter ocorrido. Obrigado pela sua compreensão.
|
|||||
| Online: 217 users browsing the articles directory |
|
|