套件 | 最上層 |
類別 | 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