美文网首页
Js利用正则表达式获得回调函数的函数名

Js利用正则表达式获得回调函数的函数名

作者: kallsaver | 来源:发表于2017-01-06 00:14 被阅读0次

    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 run(fn){

    if(typeof fn ==="function"){

    console.log(fn) //在主函数体可以看到回调函数的一切

    var name=getArgs(fn)[0]

    alert(name)

    }

    }

    run(function(a){ //回调函数是匿名或者有名都可以用这个方法获得

    a++

    })

    function add(a){

    a++

    }

    相关文章

      网友评论

          本文标题:Js利用正则表达式获得回调函数的函数名

          本文链接:https://www.haomeiwen.com/subject/oprtbttx.html