node.js 在函数内获取当前函数

Posted 参与商

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了node.js 在函数内获取当前函数相关的知识,希望对你有一定的参考价值。

js 如何在函数体内部知道 自己在哪个函数内运行呢?

 

打比方:

function a() {
    // 我想在这里知道我的函数名a和函数function a () {...}
}

 

使用Error的调用栈可以匹配到当期执行的函数:

//    获取正在执行的函数
function getExecFunction() {
    let names = new Error().stack.match(/at (.*?) /g);
    let name = names[1].replace(‘at ‘, ‘‘).trim();
    return eval(name);
}

 

Use Ex:

function a() {
    console.log(getExecFunction());
}

function getExecFunction() {
    let names = new Error().stack.match(/at (.*?) /g);
    let name = names[1].replace(‘at ‘, ‘‘).trim();
    return eval(name);
}

a();        //[Function: a]

 

如果是在class内部,可以这么写(代码基于ES6):

class A {
    // 获取正在执行的函数
    getExecFunction() {
        let names = new Error().stack.match(/at A\.(.*?) /g);
        let name = names[1].replace(‘at A.‘, ‘‘).trim();
        return eval(`this.${name}`);
    }

    a() {
        console.log(this.getExecFunction());
    }
}
new A().a();    //    [Function: a]

 

如有错误,请指正,感谢。

以上是关于node.js 在函数内获取当前函数的主要内容,如果未能解决你的问题,请参考以下文章

node.js的基本语法

node.js调试入门

使用androidx获取片段内的actionBar

使用python获取该函数内的当前函数名

JavaScript/node.js:尝试访问某个函数之外的对象属性时获取 NULL

如何在Node.js的回调中正确测试代码?