ActionScript: Generalizzare una funzione per aumentare riutilizzabilità
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
|
|||
|