Как определить количество аргументов функции во время выполнения во Flex 3? - PullRequest
12 голосов
/ 03 марта 2010

Я хочу передать необязательный параметр данных некоторым обратным вызовам, но только обратным вызовам, которые поддерживают один параметр;сейчас у меня есть кодовая база умеренного размера, которая вообще не может принимать параметры.Как я могу проверить, какие параметры поддерживает объект Function?

Ответы [ 3 ]

21 голосов
/ 27 ноября 2010

Функция является объектом. Каждая функция имеет свойство только для чтения с именем length , в котором хранится количество параметров, определенных для функции. Используйте это.

2 голосов
/ 03 марта 2010

Если ваша функция объявлена ​​в class, используйте function descriptionType , она вернет XML, который вы можете проанализировать, и посмотрите на имя вашей функции с его аргументами

1 голос
/ 03 марта 2010

Массив arguments - это массив всех параметров, передаваемых в функцию. Может быть, это то, что вы ищете?

function traceArgArray(x:int):void
{
    for (var i:uint = 0; i < arguments.length; i++)
    {
        trace(arguments[i]);
    }
}

Пример взят с сайта liveocs.adobe.com

...