国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JavaScript獲取function所有參數名的方法

2019-11-20 11:22:36
字體:
來源:轉載
供稿:網友

我寫了一個 JavaScript函數來解析函數的參數名稱, 代碼如下:

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)); 

正則表達式(regular expression) 是個好東西嗎? 別的我不知道, 但在適當的場景用起來還是很給力的!

附帶一個Java取得當前函數名的方法: Java 在函數中獲取當前函數的函數名

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();   } }

【運行結果】

getXXX 
getYYY 

【注意】

代碼第5行,stacktrace[0].getMethodName() 是 getStackTrace,stacktrace[1].getMethodName() 是 getMethodName,stacktrace[2].getMethodName() 才是調用 getMethodName 的函數的函數名。

// 注意: stacktrace里面的位置;
// [1] 是“getMethodName”, [2] 是調用此方法的method

public static String getMethodName() {   StackTraceElement[] stacktrace = Thread.currentThread().getStackTrace();   StackTraceElement e = stacktrace[2];   String methodName = e.getMethodName();   return methodName; }

以上內容是本文給大家介紹的js獲取function所有參數名的方法,本文寫的不好還請大家見諒,歡迎大家提出寶貴意見。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 汉阴县| 庐江县| 苏州市| 土默特右旗| 白朗县| 连平县| 合肥市| 承德市| 正镶白旗| 县级市| 武鸣县| 监利县| 乐山市| 余干县| 岳西县| 赤城县| 乐昌市| 陈巴尔虎旗| 普格县| 铁岭县| 安龙县| 东丰县| 宜章县| 台东市| 浮梁县| 比如县| 惠州市| 南雄市| 三门县| 葫芦岛市| 青冈县| 孟津县| 商城县| 洛宁县| 和顺县| 崇阳县| 裕民县| 筠连县| 陇西县| 苏尼特右旗| 洪雅县|