Heim > Web-Frontend > js-Tutorial > JavaScript-Methode zum Abrufen aller Parameternamen von function_javascript-Tipps

JavaScript-Methode zum Abrufen aller Parameternamen von function_javascript-Tipps

WBOY
Freigeben: 2016-05-16 15:34:28
Original
1550 Leute haben es durchsucht

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;
 });
}
Nach dem Login kopieren

Das Obige ist die Erkennungsfunktion, der Beispielcode lautet wie folgt:

function myCustomFn(arg1, arg2,arg3) {
 // ...
}
// ["arg1", "arg2", "arg3"]
console.log(getArgs(myCustomFn)); 
Nach dem Login kopieren

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

ab
public 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(); 
  } 
}
Nach dem Login kopieren

【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; 
}
Nach dem Login kopieren

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.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage