Pakket | Hoofdniveau |
Klasse | public class arguments |
Overerving | arguments Object |
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
De argumenten worden opgeslagen als arrayelementen: het eerste is toegankelijk als arguments[0]
, het tweede als arguments[1]
, enzovoort. De eigenschap arguments.length
geeft het aantal argumenten aan dat aan de functie wordt doorgegeven. Het aantal doorgegeven argumenten kan echter afwijken van het aantal dat de functie declareert.
In tegenstelling tot vorige versies van ActionScript heeft ActionScript 3.0 geen eigenschap arguments.caller
. Wanneer u een verwijzing wilt naar de functie die de huidige functie heeft aangeroepen, moet u een verwijzing naar die functie doorgeven als argument. Een voorbeeld van deze techniek vindt u in het voorbeeld voor arguments.callee
.
ActionScript 3.0 neemt een nieuw trefwoord ...(rest)
op dat wordt aangeraden in plaats van de klasse arguments.
Verwante API-elementen
Eigenschap | Gedefinieerd door | ||
---|---|---|---|
callee : Function
Een verwijzing naar de functie die momenteel wordt uitgevoerd. | arguments | ||
constructor : Object
Verwijzing naar het klasseobject of de constructorfunctie van een bepaalde objectinstantie. | Object | ||
length : Number
Het aantal argumenten dat aan de functie wordt doorgegeven. | arguments |
callee | eigenschap |
public var callee:Function
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Een verwijzing naar de functie die momenteel wordt uitgevoerd.
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
secondFunction()
aanroept. De functie firstFunction()
heeft het Booleaanse argument true
om aan te geven dat secondFunction()
firstFunction()
aanroept en om een oneindige lus van het elkaar over en weer aanroepen van de functies te voorkomen.
Omdat de parameter callSecond
true
is, roept firstFunction()
secondFunction()
aan en geeft deze een verwijzing door naar zichzelf als enig argument. De functie secondFunction()
ontvangt dit argument en slaat het op met een parameter caller
die van het gegevenstype Function is. Vanuit secondFunction()
wordt vervolgens met de parameter caller
de functie firstFunction
aangeroepen, maar dit keer met het argument callSecond
ingesteld op false
.
Wanneer de uitvoering terugkeert naar firstFunction()
, wordt de instructie trace()
uitgevoerd omdat callSecond
false
is.
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 | eigenschap |
public var length:Number
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Het aantal argumenten dat aan de functie wordt doorgegeven. Dit kan meer of minder zijn dan de functie declareert.
arguments
getoond, zoals callee
en 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 } } }
Wed Jun 13 2018, 11:42 AM Z