Javascript 如何从方法内部获取js方法名
我想直接从此方法体获取当前方法名称,我的代码无效:Javascript 如何从方法内部获取js方法名,javascript,node.js,function,methods,Javascript,Node.js,Function,Methods,我想直接从此方法体获取当前方法名称,我的代码无效: var myFunction = function(){ console.log(arguments.callee.name); // output must be "myFunction" } This works excellently function myFunction() { console.log(arguments.callee.name); // output is "myFunction" } 你
var myFunction = function(){
console.log(arguments.callee.name); // output must be "myFunction"
}
This works excellently
function myFunction() {
console.log(arguments.callee.name); // output is "myFunction"
}
你有什么建议吗?有什么办法可以让它发挥作用吗?
我搜索谷歌越来越多,但没有找到smth。有用的函数是匿名的,没有名字 要获取变量名,请按照 解决方案1: 尝试创建一个具有
属性的对象
,然后通过属性迭代,并显示属性的名称
var x = {
myFunction : function(){
}
};
for(var variable in x)
{
console.log(variable);
}
var funcTest = function() {
for(var variable in this) {
console.log(variable);
break;
}
}
var x = { myFunction : funcTest };
x.myFunction(); // myFunction
var y = { secondFunction : funcTest }
y.secondFunction(); // secondFunction
解决方案2:
我试图做一个变通办法。我认为<代码>属性<代码>是对象的<强>第一个/强>,我尝试显示<代码>属性 < < /P>
var x = {
myFunction : function(){
}
};
for(var variable in x)
{
console.log(variable);
}
var funcTest = function() {
for(var variable in this) {
console.log(variable);
break;
}
}
var x = { myFunction : funcTest };
x.myFunction(); // myFunction
var y = { secondFunction : funcTest }
y.secondFunction(); // secondFunction
解决方案是为函数指定一个名称:
var myMethod = function myMethod () {
console.log(arguments.callee.name); // output is "myMethod"
};
我一点也不喜欢这种方式,但它在具体任务中起作用这是一个异常的函数,怎么能有名字呢?@adricadar绝对正确。它根本没有名字。但是,您可以通过简单地给它一个来解决这个问题。请参阅如何执行此操作以及它有什么含义(特别是IE)。好的,有没有办法获取变量名这个匿名函数的值?在“myFunction”的情况下,这对我来说是不可用的((我不认为这回答了他的问题。他想知道是否有可能从函数本身内部知道函数名