ActionScript: Generalizzare una funzione per aumentare riutilizzabilità


  Share  
|


Desiderate realizzare le variazioni leggere di un'azione senza dovere duplicare le linee multiple del codice per accomodare le differenze secondarie.

Aggiunga i parametri alla vostra funzione per renderlo abbastanza flessibile per realizzare le azioni un po'differenti quando è invocata piuttosto che realizzando esattamente la stessa azione o fornendo lo stesso risultato ogni volta.

Definisca i parametri che rappresentano la variabilità in che cosa desiderate la funzione fare:

myParamsFunction di funzione (param1, param2, param3) {la 
media del trace("The è" + (param1 + param2 + param3)/3); }

Se non sapete che il numero esatto di parametri la funzione riceverà, usi l'allineamento incorporato di discussioni per maneggiare un numero variabile di parametri.

Una funzione che non accetta i parametri fornisce generalmente lo stesso risultato ogni volta che è invocato. Ma dovete spesso realizzare quasi esattamente le stesse azioni come funzione attuale, ma con le variazioni secondarie. Duplicare l'intera funzione ed allora fare i cambiamenti secondari alla seconda versione sono un'idea difettosa nella maggior parte dei casi. Solitamente, rende il vostro codice più duro effettuare e capire. Più d'importanza, troverete solitamente che avete bisogno delle non soltanto due variazioni ma di molte variazioni della funzione. Può essere un incubo per effettuare cinque o sei variazioni di che cosa dovrebbe essere spostato idealmente in una singola funzione. Il trucco deve generare una singola funzione che può accettare i valori differenti per funzionare sopra.

Per esempio, se avete una funzione del average(), desiderate specificare i valori arbitrari da avere una media di sempre ogni volta è invocata, anziché farlo avere una media degli stessi due numeri. Potete compire questo obiettivo usando i parametri.

Il senso più comune funzionare con i parametri deve elencarlo all'interno delle parentesi nella dichiarazione di funzione. I nomi di parametro dovrebbero essere separati dalle virgole e quando invocate la funzione che dovreste passargli una lista virgola-delimitata delle discussioni che corrispondono ai parametri prevede.

I termini "parametri" e "discussioni" sono usati spesso scambievolmente per riferirsi alle variabili definite nella dichiarazione di funzione o nei valori che sono passate ad una funzione quando è invocata.

Qui è un esempio semplice di una dichiarazione di funzione usando i parametri e un invocation di funzione in cui le discussioni sono passate durante la chiamata di funzione:

//definisca la funzione tali che prevede due parametri: 
a e media di funzione del b. (a, b) {la media del trace("The è"
+ (a + b)/2); }
//quando invocate la funzione, gli passa due 
discussioni, come 6 e 12, che// corrisponda alla a e// questa di 
parametri di b chiamata a average() visualizza: "la media è 9" 
average(6, 12);

I parametri funzionano esattamente nello stesso senso con le costanti letterali di funzione come fanno con chiamato funzionano:

media = funzione (a, b) {la media del trace("The è: 
"+ (a + b)/2); };

Nella maggior parte delle situazioni è meglio dichiarare i parametri che la funzione dovrebbe prevedere. Tuttavia, ci sono alcuni piani d'azione in cui il numero di parametri è sconosciuto. Per esempio, se desiderate la funzione del average() avere una media di qualunque numero di valori, potete usare l'allineamento incorporato di discussioni, che è disponibile all'interno del corpo di tutta la funzione. Tutti i parametri che sono passati ad una funzione sono disposti automaticamente nell'allineamento di discussioni di quella funzione.

//là è necessità di specificare// di parametri per 
accettare quando usando le discussioni allinea la media di funzione ()
{risultato di varietà = 0;
 //ciclo con ciascuno degli elementi delle discussioni 
allinea// ed aggiunge quel valore per risultare per (varietà i = 0; 
i < arguments.length; i++) {risultato + = arguments[i ]; 
}// allora si divide dal numero totale di discussioni la media 
del trace("The che è" + result/arguments.length); }
//potete invocare il average() con tutto il numero
di// in questo caso di parametri, la funzione visualizzerete: 
"la media è 7.5". media (3, 6, 9, 12);

Tecnicamente, le discussioni è un oggetto con le proprietà supplementari oltre quello di un allineamento di base. Tuttavia, mentre le discussioni è un genere speciale di allineamento, potete ancora lavorare con esso negli stessi sensi che un allineamento normale.

ciò è un articolo aggiunto da Gabriel Savimbi


Share  

© 2005-2010 E-articles.info All Rights Reserved - Terms and conditions