动态访问函数参数信息
在 JavaScript 中,通常需要在运行时动态访问函数参数名称和值。本文讨论了实现此功能的方法。
获取参数名称
要获取任何给定函数的参数名称数组,可以使用以下函数:
var getParamNames = function(func) { var fnStr = func.toString().replace(STRIP_COMMENTS, ''); var result = fnStr.slice(fnStr.indexOf('(')+1, fnStr.indexOf(')')).match(ARGUMENT_NAMES); if(result === null) result = []; return result; };
此函数替换注释并使用正则表达式匹配参数名称。例如:
getParamNames(getParamNames) // returns ['func'] getParamNames(function (a,b,c,d){}) // returns ['a','b','c','d']
获取参数值
除了参数名称之外,arguments 对象还可用于访问函数本身内的参数值:
var args = Array.slice(arguments);
这将创建一个包含所有函数值的数组参数。
用法示例
考虑以下带有任意数量参数的函数:
function doSomething() { // Fill an array with parameter names and values var paramNames = getParamNames(doSomething); var paramValues = Array.slice(arguments); }
函数内部的 getParamNames 函数用于获取参数名称,Array.slice(arguments)用于获取参数值。
注意事项
以上是如何动态访问 JavaScript 函数参数名称和值?的详细内容。更多信息请关注PHP中文网其他相关文章!