我编写了一个Javascript函数来解析函数参数的名称,代码如下所示:


功能getargs(功能){
第一个正则匹配,与字符串参数模型一致。
第一个包是:(}){非右括号的任何字符
var args = func.tostring(。比赛(功能美国* )(({ ^)}×)) / { 1 });
使用逗号分隔参数(参数字符串)。
返回args.split(
(内联注释) / /删除注释和空白
返回arg.replace( / / *。* * / / )(。饰);
}(筛选器(函数){)
确保没有未定义。
返回arg;
});
}


以上是检测的功能,示例代码如下:


功能(arg1,arg2,mycustomfn ARG3){

}
{ / / arg1
console.log(getargs(mycustomfn));



正则表达式(正则表达式)是一个很好的东西,我不知道其他任何,但它仍然是非常可怕的,在适当的场景!

一个java获取当前函数名称的方法:java中的函数获取当前函数的函数名


公共类测试{
getmethodname字符串(){
stacktraceelement { } = thread.currentthread堆栈()GetStackTrace();
stacktraceelement E =堆栈{ 2 };
字符串调用= e.getmethodname();
返回语句;
}
public void getXXX(){
字符串调用= getmethodname();
System.out.println(打印);
}
公共无效getyyy(){
字符串调用= getmethodname();
System.out.println(打印);
}
public static void main(String { } args){
测试=新的测试();
Test.getXXX();
Test.getYYY();
}
}


{操作结果}



getXXX

getyyy

{注意}

代码的第五行堆栈{ 0 }。getmethodname(),是getstacktrace,堆栈{ 1 }。getmethodname()是getmethodname,堆栈{ 2 }。getmethodname()是函数调用的函数的名称getmethodname。

注: / /堆栈内的位置;

/ / { 1 }是getmethodname,{ 2 }是调用此方法的方法




字符串getmethodname(){
stacktraceelement { } = thread.currentthread堆栈()GetStackTrace();
stacktraceelement E =堆栈{ 2 };
字符串调用= e.getmethodname();
返回语句;
}


以上是用js获取函数所有参数名的方法。这篇文章写得不好。请原谅我。欢迎提出宝贵意见。