国产探花免费观看_亚洲丰满少妇自慰呻吟_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所有參數名的方法,本文寫的不好還請大家見諒,歡迎大家提出寶貴意見。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 柳河县| 朝阳县| 云安县| 江北区| 工布江达县| 沅江市| 永胜县| 萝北县| 孟村| 柳林县| 新安县| 新河县| 剑川县| 尉犁县| 玉门市| 陵川县| 北海市| 台前县| 通州区| 孟州市| 灵台县| 丰原市| 阳春市| 健康| 龙海市| 玛纳斯县| 遂平县| 洪江市| 南溪县| 红原县| 饶平县| 拜城县| 永昌县| 四川省| 漯河市| 合阳县| 宁武县| 双鸭山市| 金坛市| 长沙县| 巴里|