在Node.js中,我正在尝试获取当前执行的函数的名称:
function doSomething(req, res) {
console.log('Function name: ' + doSomething.name);
}
这个方法很好用,但是我想(如果可能的话)在当前上下文中获取名称。这样,如果以后我重命名了这个方法,就不需要手动更改了。是否有一个通用的对象(类似于'this'),指向正在执行的当前函数/当前上下文?谢谢。
在Node.js中,我正在尝试获取当前执行的函数的名称:
function doSomething(req, res) {
console.log('Function name: ' + doSomething.name);
}
这个方法很好用,但是我想(如果可能的话)在当前上下文中获取名称。这样,如果以后我重命名了这个方法,就不需要手动更改了。是否有一个通用的对象(类似于'this'),指向正在执行的当前函数/当前上下文?谢谢。
简短回答: Object.values (this) [0] .name
详细解释:
let myInstanceArray = Object.values(this)
将对象属性枚举为数组
let myInstance = myInstanceArray[0]
获取数组中的第一个,也是唯一一个项目
let myName = myInstance.name
获取该项目的名称。
name
用作以下方式:const yourFunction = () => {};
console.log(yourFunction.name);
// output: "yourFunction"
我不想重复Ian在“可能重复”的建议中的答案,但除了它们之外,可能值得一提的解决方案是:
您可以使用命名函数表达式,以拥有一个名称,该名称可从函数外部访问,以及一个可从内部访问的名称:
var x = function y() {
console.log(y);
};
console.log(x);
x
,仍然能够使用y
引用该函数。