Pakiet | Najwyższy poziom |
Klasa | public class arguments |
Dziedziczenie | arguments Object |
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Argumenty są przechowywane w postaci tablicy elementów: pierwszy udostępniony element to arguments[0]
, drugi to arguments[1]
itd. Właściwość arguments.length
określa liczbę argumentów przekazanych funkcji. Liczba argumentów przekazana do funkcji może być różna od liczby argumentów przez nią deklarowanych.
W przeciwieństwie do swoich wcześniejszych wersji narzędzie ActionScript 3.0 nie posiada właściwości arguments.caller
. Aby pobrać odwołanie do funkcji, która wywołała bieżącą funkcję, należy przekazać do tej funkcji dane odwołanie w formie argumentu. Zastosowanie tej techniki można znaleźć w przykładzie dla właściwości arguments.callee
.
Zamiast klasy argumentów zaleca się używać nowego słowa kluczowego ...(rest)
udostępnionego w narzędziu ActionScript 3.0.
Powiązane elementy interfejsu API
Właściwość | Zdefiniowane przez | ||
---|---|---|---|
callee : Function
Odwołanie do aktualnie realizowanej funkcji. | arguments | ||
constructor : Object
Odwołanie do obiektu klasy lub funkcji konstruktora, dotyczące danej instancji obiektu. | Object | ||
length : Number
Liczba argumentów przekazanych do funkcji. | arguments |
callee | właściwość |
public var callee:Function
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Odniesienie do aktualnie realizowanej funkcji.
Przykład ( Sposób korzystania z tego przykładu )
secondFunction()
. Argument typu Boolean dla funkcji firstFunction()
został ustawiony na wartość true
w celu pokazania, jak funkcja secondFunction()
pomyślnie wywołuje funkcję firstFunction()
oraz uniknięcia nieskończonego zapętlenia się we wzajemnym wywoływaniu się tych funkcji.
Ponieważ parametr callSecond
został ustawiony na wartość true
, funkcja firstFunction()
wywołuje funkcję secondFunction()
i odwołuje się do samej siebie jako jedynego argumentu. Funkcja secondFunction()
otrzymuje ten argument i zapisuje go za pomocą parametru o nazwie caller
, którego typ danych to Funkcja. W drugiej funkcji secondFunction()
za pomocą parametru caller
zostaje wywołana funkcja firstFunction
, ale tym razem argument callSecond
został ustawiony na wartość false
.
Powrót do funkcji firstFunction()
powoduje wykonanie instrukcji trace()
, ponieważ argument callSecond
został ustawiony na wartość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 | właściwość |
public var length:Number
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Liczba argumentów przekazanych do funkcji. Może być różna od liczby deklarowanej przez funkcję.
argumentów
, jak np. callee
i 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, 12:06 PM Z