JavaScript 获取function的参数

function getArgs(func) {
// 先用正则匹配,取得符合参数模式的字符串.
// 第一个分组是这个: ([^)]*) 非右括号的任意字符
var args = func.toString().match(/function\s.*?\(([^)]*)\)/)[1];

// 用逗号来分隔参数(arguments string).
return args.split(",").map(function(arg) {
// 去除注释(inline comments)以及空格
return arg.replace(/\/\*.*\*\//, "").trim();
}).filter(function(arg) {
// 确保没有 undefined.
return arg;
});
}
上面是检测的函数, 示例代码如下:

function myCustomFn(arg1, arg2,arg3) {
// ...
}

// ["arg1", "arg2", "arg3"]
console.log(getArgs(myCustomFn));

posted @ 2015-12-16 09:29  shidengyun  阅读(1401)  评论(0编辑  收藏  举报