2009-03-12 5 views
9

Alcune funzioni AS3 manico sovraccarico consentendo per un numero arbitrario di parametri utilizzando la convenzione:compilando i parametri (... rest) con un array?

public function doSomething(... rest):void; 

Sono in una situazione dove necessario passare tutti i valori di un array (di lunghezza arbitraria) in questo tipo di funzione ... Non sono sicuro di come farlo. Suggerimenti?

Ecco una soluzione hack, ma non è estendibile:

switch (args.length) { 
case 0: doSomething(); break; 
case 1: doSomething(args[0]); break; 
case 2: doSomething(args[0], args[1]); break;} 

risposta

14

Partenza Function#Apply(). Ti consente di passare i parametri come una matrice.

doSomething.apply(contextObj, args); 
1

Here è un ottimo consiglio per passare il parametro di riposo tra le funzioni.

+0

Grazie per aver collegato il mio post e le parole gentili. :) – johncblandii