如何从方法内部获取js方法名称

时间:2015-03-19 13:53:45

标签: 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" 
}

你有什么建议我,有没有办法让这项工作? 我搜索谷歌越来越多,但没有找到smth。有帮助

2 个答案:

答案 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"
};

我根本不喜欢这种方式,但它在具体任务中起作用