2012-01-17 20 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没有帮助了。

那么,有没有任何其他的方式来检查无限的参数不是尝试{}块和推很多则params的?

//编辑Kodiak

+0

我没有得到你的一句“即使descibe类型返回我的信息只有第一个参数”。 – Kodiak 2012-01-17 08:58:04

+0

恐怕我是一样的,只能得到关于第一个参数的信息。我不知道其他方式。 :( – WORMSS 2012-01-17 09:17:18

回答

0

您只能在函数内部检查它。

Function().length 

正在向您返回函数愿意接受的已定义参数号。

的..args参数是像你说的是无限的。所以你无法检查函数外部的长度。

你可以做到这一点只有内部的功能,所以写一些“桥梁”功能:

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

但问题是我需要了解它从功能外检查有多少参数,我可以推通过量也从里面将是清晰和易于:) – turbosqel 2012-01-17 09:19:41

+0

@turbosqel但是你可以通过许多参数,你就像你正在使用...参数一样。这是整个问题! – 2012-01-17 12:13:56

+0

我知道,但这不是重点。我需要的是知道它在运行时,该功能可按具有无限的参数(参数... args)或不:]我要检查多少个参数,我可以适用于功能由function.length限制或多达我想。 – turbosqel 2012-01-17 12:28:02