| Paket | Översta nivån |
| Klass | public class arguments |
| Arv | arguments Object |
| Språkversion: | ActionScript 3.0 |
| Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Argumenten sparas som arrayelement: det första kommer du åt med arguments[0], det andra med arguments[1] och så vidare. Egenskapen arguments.length anger hur många argument som skickades till funktionen. Det kan vara ett annat antal argument som skickades än vad funktionen deklarerar.
Till skillnad från tidigare versioner av ActionScript har ActionScript 3.0 inte egenskapen arguments.caller. Om du vill ha en referens till den funktion som anropade den aktuella funktionen måste du skicka med en referens till den funktionen som ett argument. Ett exempel på den tekniken hittar du i exemplet för arguments.callee.
I ActionScript 3.0 finns ett nytt nyckelord ...(rest) som du bör använda i stället för klassen arguments.
Relaterade API-element
| Egenskap | Definieras med | ||
|---|---|---|---|
| callee : Function
En referens till den funktion som för närvarande körs. | arguments | ||
![]() | constructor : Object
En referens till klassobjektet eller konstruktorfunktionen för en given objektinstans. | Object | |
| length : Number
Hur många argument som skickades till funktionen. | arguments | ||
callee | egenskap |
public var callee:Function| Språkversion: | ActionScript 3.0 |
| Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
En referens till den funktion som för närvarande körs.
Exempel ( Så här använder du exemplet )
secondFunction(). Funktionen firstFunction() har det booleska argumentet true som demonstrerar att secondFunction() anropat firstFunction() och som förhindrar en oändlig slinga där de två funktionerna anropar varandra.
Eftersom parametern callSecond är true, anropar firstFunction() secondFunction() och skickar med en referens till sig själv som enda argument. Funktionen secondFunction() tar emot argumentet och lagrar det med en parameter med namnet caller, som är av datatypen Function. Inifrån funktionen secondFunction() använder du parametern caller för att anropa funktionen firstFunction men den här gången med argumentet callSecond inställt på false.
När körningen återgår till firstFunction() körs programsatsen trace() eftersom callSecond är 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 | egenskap |
public var length:Number| Språkversion: | ActionScript 3.0 |
| Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Hur många argument som skickades till funktionen. Det kan vara fler eller färre än funktionen deklarerar.
arguments-egenskaper kan användas, till exempel callee och 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, 01:40 PM Z
Dölj ärvda publika egenskaper
Visa ärvda publika egenskaper