【问题标题】:how to get js method name from inside the method如何从方法内部获取js方法名称
【发布时间】:2015-05-22 16:16:40
【问题描述】:

我想直接从这个方法体中获取当前方法名,我的代码不起作用是:

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" 
}

你对我有什么建议,有什么办法可以做到这一点吗? 我越来越多地搜索谷歌,但没有找到。有帮助

【问题讨论】:

  • 这是一个匿名函数,怎么会有名字?
  • @adricadar 是绝对正确的。它根本没有名字。但是,您可以通过简单地给它一个来解决这个问题。请参阅stackoverflow.com/questions/14178305/… 了解如何执行此操作以及它有什么影响(尤其是 IE)。
  • 好的,有什么方法可以获取变量名,这个匿名函数的值是多少?在“myFunction”的情况下

标签: javascript node.js function methods


【解决方案1】:

解决方案是给函数一个名称

var myMethod = function myMethod () {    
    console.log(arguments.callee.name); // output is "myMethod"
};

我根本不喜欢这种方式,但它适用于具体任务

【讨论】:

    【解决方案2】:

    函数是匿名的,没有名字。

    要获取变量名,请关注this answer

    解决方案 1: 尝试创建一个具有propertyobject,然后迭代 属性并显示property 的名称。

    var x = {
        myFunction : function(){      
        }
    };
    
    for(var variable in x)
    {
        console.log(variable);
    }
    

    解决方案 2: 我试图制定一个解决方法。我认为property 是对象的first,我尝试显示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
    

    【讨论】:

    • 这对我不可用(((
    • 我认为这不能回答他的问题。他想知道是否可以从函数内部知道函数名
    猜你喜欢
    • 2016-10-12
    • 1970-01-01
    • 2012-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-07
    • 2012-10-25
    • 1970-01-01
    相关资源
    最近更新 更多