Ich habe eine JavaScript-Funktion geschrieben, um die Parameternamen der Funktion zu analysieren. Der Code lautet wie folgt:
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; }); }
Das Obige ist die Erkennungsfunktion, der Beispielcode lautet wie folgt:
function myCustomFn(arg1, arg2,arg3) { // ... } // ["arg1", "arg2", "arg3"] console.log(getArgs(myCustomFn));
Ist regulärer Ausdruck eine gute Sache? Ich weiß nichts anderes, aber er ist immer noch sehr mächtig, wenn er in geeigneten Szenarien verwendet wird!
enthält eine Java-Methode zum Abrufen des aktuellen Funktionsnamens: Java ruft den Funktionsnamen der aktuellen Funktion in der Funktion
abpublic class Test { private String getMethodName() { StackTraceElement[] stacktrace = Thread.currentThread().getStackTrace(); StackTraceElement e = stacktrace[2]; String methodName = e.getMethodName(); return methodName; } public void getXXX() { String methodName = getMethodName(); System.out.println(methodName); } public void getYYY() { String methodName = getMethodName(); System.out.println(methodName); } public static void main(String[] args) { Test test = new Test(); test.getXXX(); test.getYYY(); } }
【Laufergebnisse】
getXXX
getYYY
【Achtung】
In Zeile 5 des Codes ist stacktrace[0].getMethodName() getStackTrace, stacktrace[1].getMethodName() ist getMethodName und stacktrace[2].getMethodName() ist der Funktionsname der Funktion, die aufruft getMethodName.
// Hinweis: die Position innerhalb von Stacktrace;
// [1] ist „getMethodName“, [2] ist die Methode, die diese Methode aufruft
public static String getMethodName() { StackTraceElement[] stacktrace = Thread.currentThread().getStackTrace(); StackTraceElement e = stacktrace[2]; String methodName = e.getMethodName(); return methodName; }
Der obige Inhalt ist die Methode zum Abrufen aller in diesem Artikel vorgestellten Parameternamen in js. Bitte verzeihen Sie mir, wenn dieser Artikel nicht gut geschrieben ist.