Attuazione Blocchi di codiceProblema: si desidera implementare i blocchi di codice nelle applicazioni JavaScript, per ottimizzare il codice. Blocchi di codice Theory esecuzione è una tecnica di programmazione che a prima vista sembra risolvere un problema che non esiste. Qualcuno potrebbe anche dire che un blocco di codice non è altro che un callback di fantasia. I blocchi di codice in JavaScript fare analogie sopportare di callback. Ma in linguaggi come Ruby, blocchi di codice sono parte del linguaggio di programmazione e per rendere più semplice codice. È possibile utilizzare i blocchi di codice ogni volta che si sarebbe scorrere un elenco o una funzione di ritorno in cui si desidera associare più parti di informazioni con un chiamante. Solution Let's prime guardare un semplice esempio: un codice per creare una serie di quadrati. Fonte: / website / ROOT / ajaxrecipes / javascript / GenerateSquaredSeries funzione codeblocks.html (lastValue) (var array = new Array (); for (var c1 = 0; c1 <lastValue; c1 + +) ( Array.push (c1 * c1);) Return array;)
Per generare una serie di numeri che sono sulla piazza, viene creato un ciclo che conta da zero al valore desiderato più alto. Per ogni iterazione, il valore di C1 * C1 (piazza di C1) viene inserito array. Una volta che il ciclo è completato, la matrice viene restituita. L'esempio illustra un problema di eseguire un ciclo: il ciclo, e l'inizializzazione del ciclo, è il codice di infrastruttura generica. Il codice in grassetto mostra l'applicazione codice specifico, chiamato per ogni iterazione del ciclo. L'applicazione codice specifico è inserita tra i loop per il codice. Astraendo il codice inserita richiede un callback, che è simile alla seguente. Fonte: / website / ROOT / ajaxrecipes / javascript / GenerateSeries funzione codeblocks.html (lastValue, callback) (Var array = new Array (); for (var c1 = 0; c1 <lastValue; c1 + +) ( callback (array, c1);) Return array;) La funzione di modifica GenerateSeries è un ulteriore parametro, che è la funzione di callback chiamata per ogni iterazione. La funzione di callback ha lo scopo di effettuare la logica di business, e passa così la matrice e il numero di istanze per il callback. Il callback può quindi elaborare i parametri passati (array e C1), tuttavia, che vuole. Un esempio di questo segue. Fonte: / website / ROOT / ajaxrecipes / javascript / codeblocks.html funzione ExampleSeriesSquare () (var array = GenerateSeries (10, function (array, value) ( Array.push (c1 * c1);));) La funzione ExampleSeriesSquare ha una sola chiamata di funzione che chiama GenerateSeries. Una funzione anonima è passato a GenerateSeries che elaborerà il passato in serie e di valore. Il codice per l'attuazione della funzione anonima è identico al codice logica applicativa in GenerateSquaredSeries, che è piuttosto ovvio. L'esempio funzione anonima è un blocco di codice. Come accennato in precedenza, un blocco di codice è come un callback. Ciò che rende un callback diverso da un blocco di codice è che un blocco di codice è di natura generale e rappresenta una separazione di due pezzi di codice. Per convertire il codice da uno scenario di richiamata in uno scenario di blocco di codice, GenerateSeries e ExampleSeriesSquare sono riscritta come segue: funzione GenerateSeriesMod (lastValue, callback) (for (var c1 = 0; c1 <lastValue; c1 + +) (callback (c1);)) ExampleSeriesSquareMod function () (var array = new Array (); GenerateSeries (10, function ( value) (Array.push (c1 * c1);));) Fonte: / website / ROOT / ajaxrecipes / javascript / codeblocks.html funzione CustomList () (this.array = new Array ();) CustomList.prototype.iterate = function (callback) (for (item in this.array) (callback (voce );)) CustomList.prototype.addItems = function () (for (var c1 = 0; c1 <arguments.length; c1 + +) (this.array.push (argomenti [c1]);)) In questo esempio, una classe CustomList è in fase di definizione. L'elenco personalizzato ha due funzioni: l'iterazione e addItems. La funzione addItems viene utilizzato per aggiungere un elemento a un elenco, e la funzione di iterazione scorre ciascuno degli elementi del ciclo e chiede un callback. Il parametro callback rappresenta un blocco di codice. Un esempio di utilizzo CustomList è il seguente. Fonte: / website / ROOT / ajaxrecipes / javascript / codeblocks.html class_list_iterate: function () (var list = CustomList new (); list.addItems ( "ciao", "world"); list.iterate (function (item) (info ( "class_list_iterate", item);));), CustomList viene istanziato e assegnati alla lista variabile. Un elemento viene aggiunto alla lista con la funzione addItems. Si noti che addItems è molteplice-parametro-aware. Spesso in linguaggi di programmazione, è necessario chiamare il metodo AddItem per aggiungere un elemento a un elenco di tutte le volte che ci sono elementi. Il metodo addItems è diversa in quanto è possibile specificare come parametri che volete, e ciascuno di questi parametri rappresenta un singolo elemento da aggiungere alla lista. Per scorrere l'elenco, un blocco di codice viene definito, e per l'attuazione del blocco di codice, i dati possono essere trattati però piace al chiamante. In questo esempio, le voci sono uscita con il metodo info. Blocchi di codice può essere utilizzato anche per generare ed elaborare i valori di ritorno. Consideriamo un esempio che crea una funzione utilizzata per trovare le statistiche di chiusura di una quotazione di borsa. Di seguito è riportato l'attuazione del codice utilizzando una tradizionale approccio blocco di codice: funzione StockTracerTraditional (ticker) (if (ticker == "YHOO") (var obj = new Object (); this.company = "Yahoo"; this.Close = 23; this.change = -1; return obj;) return null;) CallerStockTracer function () (var obj = StockTracerTraditional ( "YHOO"); if (obj! = null) (info ( "RETURN_VALUE", "Company =" + obj.company + "close =" + + obj.close ➥ "cambiamento =" + obj.change);)) La funzione StockTracerTraditional ha un unico parametro: il ticker di essere trovati. Se il ticker è situato, un oggetto viene istanziato e le proprietà appropriate vengono assegnati. Una volta che le proprietà sono stati assegnati, l'oggetto istanziato viene restituito. La funzione di implementazione CallerStockTracer chiama StockTracerTraditional con il ticker del caso, e l'istanza restituita oggetto viene assegnato a obj. Poi una decisione è stata presa per verificare se obj è null o non. Se il ticker è stato trovato, allora obj non sarà nulla e l'oggetto può essere trasformato. In caso contrario, la funzione restituisce senza fare nulla. Il codice di esempio può essere semplificata utilizzando i blocchi di codice. L'attuazione dei seguenti riscritto StockTracerTraditional utilizza i risultati dei blocchi di codice. Fonte: / website / ROOT / ajaxrecipes / javascript / codeblocks.html funzione StockTracker (ticker, callback) (if (ticker == "YHOO") (callback ( "Yahoo", 23, -1);)) La funzione StockTrader viene riscritto, e lo stesso blocco di decisione per trovare il ticker è utilizzato. Ciò che è nuovo è l'uso di callback che viene chiamato quando un ticker è stata trovata. Consideriamo cosa succede se il ticker YHOO è stato trovato: la callback viene chiamata con tre parametri. Se un blocco di codice non sono stati utilizzati, quindi un oggetto avrebbe dovuto essere istanziati e restituita al chiamante. Perché un blocco di codice viene utilizzato, non vi è alcuna necessità di verificare se i dati viene restituito, come illustrato dal seguente codice chiamante. Fonte: / website / ROOT / ajaxrecipes / javascript / return_value codeblocks.html: function () (StockTracker ( "YHOO", la società (la funzione, chiudere, modificare) (/ / Fai qualcosa con le informazioni di dati ( "RETURN_VALUE", "Company =" + società + "close =" + vicino + "cambiamento =" + ➥ cambiamento);));), Chiamando StockTracker con il ticker per trovare come YHOO comporterà la funzione di chiamata anonima. Per l'attuazione della funzione anonima sarebbe il codice che viene eseguito quando i dati sono stati restituiti con successo. Con blocchi di codice, il chiamante non deve implementare una struttura di decisione, perché la funzione anonima sarà chiamato solo se il ticker esiste. Blocchi di codice sono un mezzo per raggiungere un fine, e non implica che non si dovrebbe mai usare blocchi di decisione o di creare loop con la logica dell'applicazione. I blocchi di codice fornire amechanism per semplificare e disaccoppiare codice da un altro. Quando si utilizza blocchi di codice, ricordare quanto segue: • I blocchi di codice sono come callback, salvo che i blocchi di codice di promuovere la separazione della logica, rendendo i pezzi di codice indipendenti l'uno dall'altro. • Il vantaggio di blocchi di codice che è in grado di elaborare singoli risultati, più risultati, o nessun risultato. Il codice chiamante non deve determinare se i risultati funzionato. • Utilizzo della natura dinamica di JavaScript, una funzione in grado di elaborare più parametri come un insieme. • I blocchi di codice può essere utilizzato come alternativa alla comunicazione tornare a inviare i dati più complessi. Come indicato nel Caso 2-17, blocchi di codice sono il modo migliore per restituire i dati al chiamante, senza dover utilizzare un tipo di ritorno. un articolo presentato da Sonja Lande Disclaimer:Il nostro sito non è responsabile per il contenuto di questo articolo. Webarticles è una risorsa gratuita di informazioni. Importante: Questo articolo è "Implementazione di blocchi di codice" è stato tradotto da un software automatico. Ci dispiace per eventuali errori di ortografia che possono essersi verificati. Grazie per la vostra comprensione.
|
|||||
| Online: 319 users browsing the articles directory |
|
|