arguments
argumentsは関数に渡された引数が格納されるオブジェクトです。
- インデックスを指定して引数の値を取得できます。(arguments[0])
- arguments.length で引数の数を取得できます。
- arguments.callee で関数を再実行します。これで再帰を実現可能です。
function_arguments.as:
public function printArgs( a:int, b:Boolean, c:String ):void { // 引数の数を所得 stdout.text += "size ---\n"; stdout.text += arguments.length + "\n"; // 引数の内容を列挙 stdout.text += "\nlist ---\n"; for each ( var arg:Object in arguments ) { stdout.text += arg + "\n"; } } public function recursion( i:int ):void { // 0になるまで再帰する。 if ( arguments[0] == 0 ) { stdout.text += "\nrecursion ---\n"; return; } else { arguments.callee( arguments[0]-1 ); stdout.text += arguments[0] + "\n"; } } // メイン public function main():void { printArgs( 10, false, "a" ); recursion(10); }
function_arguments.mxml
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete = "main()" > <mx:TextArea id="stdout" width="200" height="200" /> <mx:Script source="./function_arguments.as"/> </mx:Application>