我想直接从这个方法体中获取当前的方法名称,我的代码不起作用:
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。有帮助
答案 0 :(得分:2)
该功能匿名,没有名称。
要获取变量名称,请按this answer。
解决方案1 :
尝试创建一个object
,其property
和迭代通过属性,并显示property
的名称。
var x = {
myFunction : function(){
}
};
for(var variable in x)
{
console.log(variable);
}
解决方案2:
我尝试制作解决方法。我认为property
是来自对象的第一个,我尝试显示property
的名称。
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
答案 1 :(得分:0)
解决方案是为函数提供名称:
var myMethod = function myMethod () {
console.log(arguments.callee.name); // output is "myMethod"
};
我根本不喜欢这种方式,但它在具体任务中起作用