Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从方法内部获取js方法名_Javascript_Node.js_Function_Methods - Fatal编程技术网

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”的情况下,这对我来说是不可用的((我不认为这回答了他的问题。他想知道是否有可能从函数本身内部知道函数名