Pacchetto | Primo livello |
Classe | public class arguments |
Ereditarietà | arguments Object |
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Gli argomenti sono memorizzati come elementi di array: al primo si accede come arguments[0]
, al secondo come arguments[1]
e così via. La proprietà arguments.length
indica il numero di argomenti passati alla funzione. Può esservi una discrepanza fra il numero di argomenti passati e quanto dichiarato dalla funzione.
A differenza delle precedenti versioni di ActionScript, ActionScript 3.0 non ha alcuna proprietà arguments.caller
. Per ottenere un riferimento alla funzione che ha chiamato la funzione corrente, dovete passare un riferimento a tale funzione sotto forma di argomento. Questa tecnica è illustrata nell'esempio di arguments.callee
.
ActionScript 3.0 include una nuova parola chiave ...(rest)
, il cui utilizzo è consigliato al posto della classe arguments.
Elementi API correlati
Proprietà | Definito da | ||
---|---|---|---|
callee : Function
Un riferimento alla funzione in corso di esecuzione. | arguments | ||
constructor : Object
Un riferimento all'oggetto classe o alla funzione di costruzione per una determinata istanza di oggetto. | Object | ||
length : Number
Numero di argomenti passati alla funzione. | arguments |
callee | proprietà |
public var callee:Function
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Un riferimento alla funzione in corso di esecuzione.
Esempio ( Come utilizzare questo esempio )
secondFunction()
. La funzione firstFunction()
utilizza l'argomento booleano true
per dimostrare che secondFunction()
esegue correttamente la chiamata a firstFunction()
e per evitare il ciclo infinito causato dalle funzioni che si chiamano a vicenda.
Poiché il parametro callSecond
è true
, firstFunction()
chiama secondFunction()
e passa, come unico argomento, un riferimento a se stessa. La funzione secondFunction()
riceve l'argomento e lo memorizza utilizzando un parametro denominato caller
, il cui tipo di dati è Function. Dall'interno di secondFunction()
, il parametro caller
viene quindi utilizzato per chiamare la funzione firstFunction
, ma questa volta con l'argomento callSecond
impostato su false
.
Quando l'esecuzione ritorna a firstFunction()
, viene eseguita l'istruzione trace()
perché callSecond
è false
.
package { import flash.display.Sprite; public class ArgumentsExample extends Sprite { private var count:int = 1; public function ArgumentsExample() { firstFunction(true); } public function firstFunction(callSecond:Boolean) { trace(count + ": firstFunction"); if(callSecond) { secondFunction(arguments.callee); } else { trace("CALLS STOPPED"); } } public function secondFunction(caller:Function) { trace(count + ": secondFunction\n"); count++; caller(false); } } }
length | proprietà |
public var length:Number
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Numero di argomenti passati alla funzione. Può essere inferiore o superiore rispetto a quanto dichiarato dalla funzione.
arguments
, quali callee
e length
.
package { import flash.display.Sprite; public class ArgumentsExample extends Sprite { public function ArgumentsExample() { println("Hello World"); } public function println(str:String):void { trace(arguments.callee == this.println); // true trace(arguments.length); // 1 trace(arguments[0]); // Hello World trace(str); // Hello World } } }
Tue Jun 12 2018, 02:44 PM Z