欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript獲取function所有參數(shù)名的方法

 更新時間:2015年10月30日 09:36:54   作者:鐵錨  
本文使用javascript獲取function所有參數(shù)名的方法,對js獲取function所有參數(shù)名感興趣的朋友一起學(xué)習(xí)吧

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

function getArgs(func) {
 // 先用正則匹配,取得符合參數(shù)模式的字符串.
 // 第一個分組是這個: ([^)]*) 非右括號的任意字符
 var args = func.toString().match(/function\s.*?\(([^)]*)\)/)[1];
 // 用逗號來分隔參數(shù)(arguments string).
 return args.split(",").map(function(arg) {
  // 去除注釋(inline comments)以及空格
  return arg.replace(/\/\*.*\*\//, "").trim();
 }).filter(function(arg) {
  // 確保沒有 undefined.
  return arg;
 });
}

上面是檢測的函數(shù), 示例代碼如下:

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

正則表達(dá)式(regular expression) 是個好東西嗎? 別的我不知道, 但在適當(dāng)?shù)膱鼍坝闷饋磉€是很給力的!

附帶一個Java取得當(dāng)前函數(shù)名的方法: Java 在函數(shù)中獲取當(dāng)前函數(shù)的函數(shù)名

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

【運行結(jié)果】

getXXX 
getYYY 

【注意】

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

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

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

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

相關(guān)文章

  • window.setInterval()方法的定義和用法及offsetLeft與style.left的區(qū)別

    window.setInterval()方法的定義和用法及offsetLeft與style.left的區(qū)別

    window.setInterval()方法可以按照指定的周期執(zhí)行來執(zhí)行一段程序。周期是以毫秒為單位的,本文給大家介紹window.setInterval()方法的定義和用法,感興趣的朋友參考下
    2015-11-11
  • JavaScript Sort 的一個錯誤用法示例

    JavaScript Sort 的一個錯誤用法示例

    這篇文章主要介紹了JavaScript Sort 的一個錯誤用法示例,本文分析了一個Sort實例得到了這個錯誤用法并給出了解決方法,需要的朋友可以參考下
    2015-03-03
  • layui自定義工具欄的方法

    layui自定義工具欄的方法

    今天小編就為大家分享一篇layui自定義工具欄的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • D3.js實現(xiàn)餅圖,環(huán)圖,玫瑰圖的繪制

    D3.js實現(xiàn)餅圖,環(huán)圖,玫瑰圖的繪制

    這篇文章主要為大家介紹了如何利用D3.js中的d3.pie和d3.arc實現(xiàn)餅圖、環(huán)圖和玫瑰圖的繪制,文中的實現(xiàn)方法講解詳細(xì),感興趣的可以嘗試一下
    2022-11-11
  • javascript簡單進(jìn)制轉(zhuǎn)換實現(xiàn)方法

    javascript簡單進(jìn)制轉(zhuǎn)換實現(xiàn)方法

    這篇文章主要介紹了javascript簡單進(jìn)制轉(zhuǎn)換實現(xiàn)方法,涉及javascript字符串轉(zhuǎn)換與數(shù)值操作相關(guān)技巧,需要的朋友可以參考下
    2016-11-11
  • 利用JavaScript實現(xiàn)防抖節(jié)流函數(shù)的示例代碼

    利用JavaScript實現(xiàn)防抖節(jié)流函數(shù)的示例代碼

    在開發(fā)中我們經(jīng)常會遇到一些高頻操作,比如:鼠標(biāo)移動,滑動窗口,鍵盤輸入等等,節(jié)流和防抖就是對此類事件進(jìn)行優(yōu)化,降低觸發(fā)的頻率,以達(dá)到提高性能的目的。本文就教大家如何實現(xiàn)一個讓面試官拍大腿的防抖節(jié)流函數(shù),需要的可以參考一下
    2022-08-08
  • js+canvas實現(xiàn)簡單掃雷小游戲

    js+canvas實現(xiàn)簡單掃雷小游戲

    這篇文章主要為大家詳細(xì)介紹了js+canvas實現(xiàn)簡單掃雷小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • JavaScript切換搜索引擎的導(dǎo)航網(wǎng)頁搜索框?qū)嵗a

    JavaScript切換搜索引擎的導(dǎo)航網(wǎng)頁搜索框?qū)嵗a

    這篇文章主要介紹了javascript切換搜索引擎的導(dǎo)航網(wǎng)頁搜索框的實例代碼,非常不錯,具有參考借鑒價值 ,需要的朋友可以參考下
    2017-06-06
  • Uniapp自定義導(dǎo)航欄并自適應(yīng)機型的實現(xiàn)方法

    Uniapp自定義導(dǎo)航欄并自適應(yīng)機型的實現(xiàn)方法

    Uniapp 是一款跨平臺開發(fā)框架,可以同時開發(fā)出可以在多個平臺上運行的應(yīng)用,在開發(fā)過程中,我們常常需要自定義導(dǎo)航欄來滿足 UI 設(shè)計的需求,本文將介紹如何在 Uniapp 中自定義導(dǎo)航欄并自適應(yīng)不同機型的屏幕大小,需要的朋友可以參考下
    2023-09-09
  • javascript中方便增刪改cookie的一個類

    javascript中方便增刪改cookie的一個類

    把jquery.cookie.js改了一下,改成了純javascript版本,以備我以后項目只需,增加了一個得到頁面全部cookie鍵值的功能
    2012-10-10

最新評論