如何在JavaScript中获取字符串表示的参数数组

如何在JavaScript中获取字符串表示的参数数组,javascript,function,parameters,Javascript,Function,Parameters,我试图从函数中获取一个字符串表示的参数数组,但我不确定如何继续。基本上给出了下面的函数 function MyFunc(param1, param2, param3){ //do all the things } 函数“getParams”执行以下操作时会是什么样子 getParams(MyFunc) // ["param1","param2","param3"] 这有点混乱,但您可以通过将函数转换为字符串,然后将其拆分,直到只获得参数: var getFuncParams = func

我试图从函数中获取一个字符串表示的参数数组,但我不确定如何继续。基本上给出了下面的函数

function MyFunc(param1, param2, param3){
  //do all the things
}
函数“getParams”执行以下操作时会是什么样子

getParams(MyFunc) // ["param1","param2","param3"]

这有点混乱,但您可以通过将函数转换为字符串,然后将其拆分,直到只获得参数:

var getFuncParams = function(MyFunc) {
    var str = MyFunc.toString()
    var strParams = str.substr((str.indexOf('(')+1), (str.indexOf(')') - str.indexOf('(')) - 1)
    var params = strParams.split(",")
    return params;
}

这有点混乱,但您可以通过将函数转换为字符串,然后将其拆分,直到只获得参数:

var getFuncParams = function(MyFunc) {
    var str = MyFunc.toString()
    var strParams = str.substr((str.indexOf('(')+1), (str.indexOf(')') - str.indexOf('(')) - 1)
    var params = strParams.split(",")
    return params;
}

您想在哪里使用该
getParams
?您想实现什么?您所能做的最好的事情就是将函数转换成字符串,然后通过某种简单的解析来提取参数。例如,如果我有一个控制器函数MyCtrl($scope){},我可以执行
MyCtrl.$inject=getParams(MyCtrl)
@FrostwareCEO不构建火柴盒家庭你想在这里使用
getParams
?你想实现什么?您所能做的最好的事情就是将函数转换成字符串,然后通过某种简单的解析来提取参数。例如,如果我有一个控制器函数MyCtrl($scope){},我可以执行
MyCtrl.$inject=getParams(MyCtrl)@FrostwareCEO不要建造火柴盒房子这似乎正是我想要做的,谢谢!没问题-我对它进行了轻微的编辑,使其位于它自己的函数中。希望有帮助!这似乎正是我想要做的,谢谢!没问题-我对它进行了轻微的编辑,使其位于它自己的函数中。希望有帮助!