2012-01-17 4 views
0

ための機能をチェックする方法:私は機能を持っている場合は、無制限の引数(... argsを)

function a(param:* , ... args):void ; 
a.length // 1 


flash.utils.sdescribeType(a); 
//return me informations only about first parameter , nothing about '... args'. 

編集:avmplus.describeTypeJSONがあまりにも助けていませんでし。

したがって、try {}をブロックして多数のパラメータをプッシュする以外に、無制限の引数をチェックする方法はありますか?

//編集用コーディアック

+0

私はあなたの文章は、「でも、私の唯一の最初のパラメータに関する情報を返すタイプをdescibe」得ることはありません。 – Kodiak

+0

私は最初のパラメータについての情報を得るだけで、私は同じであると思います。私は他の方法を知らない。 : – WORMSS

答えて

0

機能内でのみ確認できます。

Function().length 

は、関数が受け入れることができる定義済みのパラメータ番号を返します。

..argsパラメータはあなたが無制限と言ったようです。関数の外にある長さをチェックする方法はありません。

あなただけの関数内でこれを行うため、いくつかの「ブリッジ」機能を書き込むことができます。

function bridgeToMain (...args) : Number 
{ 
    trace (args.length); 
    trace (mainFunction.length); 
} 
+0

しかし、問題は私がそれを知っている必要があるので、関数の外からいくつかのパラメータを調べることができます。私はそれを押すことができます。それは明確で簡単です:) – turbosqel

+0

@turbosqelしかし、あなたは多くの引数を渡すことができますあなたが... argsを使用している場合のように。それがポイントです! –

+0

私は知っているが、これは重要なことではない。私が必要とするのは実行時にそれを知ることです。その関数は無限の引数(... args)を持っているかどうかは分かりません:] function.lengthによって制限された関数にいくつの引数を適用できるかをチェックしたい。 – turbosqel

関連する問題