関数の定義に宣言された引数の数を示す。length():uint説明Function.lengthプロパティ[*1]は、関数の定義に宣言された引数の数を返します。Functionインスタンスがつくられると、関数定義に宣言された引数の数が整数でFunction.lengthプロパティに与えられます。プロパティ値は読取り専用ですので、値は変えられません。arguments.lengthプロパティが、呼出した関数の中(ローカルスコープ)で、実際に受取った引数の数を返すのとは異なります。...(rest)パラメータ定義キーワードで定めた引数は、Function.lengthプロパティの示す引数の数には含まれません。Function.lengthプロパティは、ドキュメントには掲載されていません。その意味では、非ドキュメントのプロパティです。9から備わっています。コードヒントにも含まれていることから考えて、公開されていないというより、掲載漏れの可能性が高いように思われます。図001■Functionオブジェクトに示されるコードヒント例Function.lengthプロパティがStarlingフレームワーク1.2で使われている例をふたつご紹介します。Starlingクラスです。Profile」が備わりました。3.4」02「StageVideoとStage3Dの機能追加」参照)。Profileは、Stage3D.requestContext3D()メソッドに新たに加えられた第2引数で定めます。デフォルト値はこれまでのバージョンとの互換を保つため、Baselineプロファイル("baseline")とされています。ところが、Starlingフレームワーク1.2では、これまでのコードを書替えることなく、より多くのPCでStage3Dのハードウェアアクセラレーションが使えるように、Constrainedプロファイル("baselineConstrained")をデフォルトにしました(F-site「Starlingフレームワーク1.2が公開される」の「Constrainedモード」参照)。11.4以降なら第2引数に"baselineConstrained"を加えます。Playerでは、メソッドにふたつ引数を渡せばエラーが起こります。Playerのバージョンを調べることなく、Function.lengthプロパティの値で与える引数の数を切り分けています。...[中略]...}つぎに、EventDispatcherクラスがあります。3.0とは異なり、イベントオブジェクトを受取る引数は省くことができます(「StarlingフレームワークのEventDispatcher.dispatchEventWith()メソッドと新しいイベント配信」参照)。EventDispatcher.dispatchEvent()メソッドが内部的(private)に呼出すメソッドinvokeEvent()は、つぎのようにリスナー(listener)の引数の数を予めFunction.lengthプロパティで調べ(numArgs)、値が0のときはイベントオブジェクトは渡さずにリスナーを呼出すからです。リスナーには第1引数のイベントオブジェクトに加え、Event.dataプロパティに加えた値を第2引数(event.data)として送ることもできます。1.3の更新にもとづき、メソッドinvoke()をinvokeEvent()に修正。例にふたつ目のEventDispatcherクラスを追加。