| 套件 | 最上層 |
| 類別 | public class arguments |
| 繼承 | arguments Object |
| 語言版本: | ActionScript 3.0 |
| 執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
這些引數都會以陣列元素的形式來儲存:第一個元素可以用 arguments[0] 存取,第二個則是 arguments[1],其他依此類推。arguments.length 屬性指出傳遞給函數的引數數目。 傳遞至函數的引數數目可能不同於函數宣告的數目。
不同於先前版本的 ActionScript,ActionScript 3.0 沒有 arguments.caller 屬性。 若要取得呼叫目前函數的函數參照,您必須將參照當做引數傳遞至該函數。 在 arguments.callee 的範例中可以找到這項技巧的範例。
ActionScript 3.0 包括新的 ...(rest) 關鍵字,我們建議您使用此關鍵字而非引數類別。
相關 API 元素
公用屬性
| 屬性 | 定義自 | ||
|---|---|---|---|
| callee : Function
目前正在執行之函數的參照。 | arguments | ||
![]() | constructor : Object
類別物件的參照或是特定物件實體的建構函數。 | Object | |
| length : Number
傳遞給函數的引數數目。 | arguments | ||
屬性詳細資訊
callee | 屬性 |
public var callee:Function| 語言版本: | ActionScript 3.0 |
| 執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
目前正在執行之函數的參照。
範例 ( 如何使用本範例 )
下列程式碼示範如何取得呼叫
secondFunction() 函數之函數的參照。 firstFunction() 函數具有 true 的 Boolean 引數,以示範 secondFunction() 成功呼叫 firstFunction() 以及防止每一個函數的無限迴圈呼叫其他無限迴圈。
由於 callSecond 參數為 true,所以 firstFunction() 會呼叫 secondFunction() 並傳遞其本身的參照當做唯一引數。 函數 secondFunction() 會收到這個引數,並使用名為 caller 的參數來儲存它,此參數的資料類型為 Function。 從 secondFunction(),caller 參數會用來呼叫 firstFunction 函數,但是這一次會將 callSecond 引數設定為 false。
當執行作業回到 firstFunction() 時會執行 trace() 陳述式,因為 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 | 屬性 |
public var length:Number| 語言版本: | ActionScript 3.0 |
| 執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
傳遞給函數的引數數目。 可能會比函數宣告的數目多或少。
範例 如何使用本範例
ArgumentsExample.as
下列範例示範各種
arguments 屬性的使用方式,例如 callee 和 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, 03:47 PM Z
隱藏繼承公用屬性
顯示繼承公用屬性