| 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
Nascondi proprietà pubbliche ereditate
Mostra proprietà pubbliche ereditate