Maison > interface Web > js tutoriel > le corps du texte

Méthode JavaScript pour obtenir tous les noms de paramètres des astuces function_javascript

WBOY
Libérer: 2016-05-16 15:34:28
original
1536 Les gens l'ont consulté

J'ai écrit une fonction JavaScript pour analyser les noms de paramètres de la fonction, le code est le suivant :

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;
 });
}
Copier après la connexion

Ce qui précède est la fonction de détection, l'exemple de code est le suivant :

function myCustomFn(arg1, arg2,arg3) {
 // ...
}
// ["arg1", "arg2", "arg3"]
console.log(getArgs(myCustomFn)); 
Copier après la connexion

L'expression régulière est-elle une bonne chose ? Je ne sais rien d'autre, mais elle est toujours très puissante lorsqu'elle est utilisée dans des scénarios appropriés !

est livré avec une méthode Java pour obtenir le nom de la fonction actuelle : Java obtient le nom de la fonction actuelle dans la fonction

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(); 
  } 
}
Copier après la connexion

【Exécuter les résultats】

getXXX
getYYY

【Attention】

Dans la ligne 5 du code, stacktrace[0].getMethodName() est getStackTrace, stacktrace[1].getMethodName() est getMethodName et stacktrace[2].getMethodName() est le nom de la fonction qui appelle getMethodName.

// Remarque : la position à l'intérieur de stacktrace ;
// [1] est "getMethodName", [2] est la méthode qui appelle cette méthode

public static String getMethodName() { 
  StackTraceElement[] stacktrace = Thread.currentThread().getStackTrace(); 
  StackTraceElement e = stacktrace[2]; 
  String methodName = e.getMethodName(); 
  return methodName; 
}
Copier après la connexion

Le contenu ci-dessus est la méthode pour obtenir tous les noms de paramètres de fonction dans js introduits dans cet article. Veuillez me pardonner si cet article n'est pas bien écrit. Bienvenue pour donner vos précieux avis.

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal