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