我已经可以通过执行以下操作来获取类中的所有函数。
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;
}
如果是这样,我会在椭圆上填写什么?
答案 0 :(得分:2)
Nosirree。我想给你一个解决方法,但没有办法像这样反省一个函数的签名。
你可以做的是,当函数实际上被称为时,你可以通过查看arguments
对象,在其中浏览参数而不管签名。如:
function doSomething() {
if (arguments.length > 0) {
if (typeof arguments[0] == "string") {
....
}
}
}
等等。但即使这样,也无法找到函数签名中参数的名称(即使签名中没有参数,这也可以正常工作),如上所述。