在actionscript 2.0中以程序方式访问函数的参数列表

时间:2009-06-09 23:14:17

标签: actionscript actionscript-2

我已经可以通过执行以下操作来获取类中的所有函数。

for (var member in obj) {
    if (obj[member] instanceof Function) {
        var f:Function = obj[member];
        ...
    }
}

有没有办法在actionscript中获取函数的参数列表?例如,我可以编写一个类似这样的函数吗?

function getFunctionArguments (f:Function) : Array {
    var argumentArray:Array = new Array();
    for (...) {
        ...
        argumentArray.push({ name:<argumentName>, type:<argument type> });
    }
    return argumentArray;
}

如果是这样,我会在椭圆上填写什么?

1 个答案:

答案 0 :(得分:2)

Nosirree。我想给你一个解决方法,但没有办法像这样反省一个函数的签名。

你可以做的是,当函数实际上被称为时,你可以通过查看arguments对象,在其中浏览参数而不管签名。如:

function doSomething() {
    if (arguments.length > 0) {
         if (typeof arguments[0] == "string") {
             ....
         }
    }
}

等等。但即使这样,也无法找到函数签名中参数的名称(即使签名中没有参数,这也可以正常工作),如上所述。