亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

我寫(xiě)了一個(gè) JavaScript函數(shù)來(lái)解析函數(shù)的參數(shù)名稱, 代碼如下:

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

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

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

正則表達(dá)式(regular expression) 是個(gè)好東西嗎? 別的我不知道, 但在適當(dāng)?shù)膱?chǎng)景用起來(lái)還是很給力的!

附帶一個(gè)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(); 
  } 
}

【運(yùn)行結(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ù)名的方法,本文寫(xiě)的不好還請(qǐng)大家見(jiàn)諒,歡迎大家提出寶貴意見(jiàn)。

相關(guān)文章

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

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

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

    JavaScript Sort 的一個(gè)錯(cuò)誤用法示例

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

    layui自定義工具欄的方法

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

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

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

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

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

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

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

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

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

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

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

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

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

    javascript中方便增刪改cookie的一個(gè)類

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

最新評(píng)論