【问题标题】:JavaScript: Dynamically Pass Function's Name [duplicate]JavaScript:动态传递函数的名称[重复]
【发布时间】:2013-06-04 19:43:33
【问题描述】:

在 PHP 中,可以将一个函数的名称传递给另一个函数...

function fail()
{
 $query1 = 'SELECT null FROM null;';
 $result1 = mysql_query($query1);

 if ($result1) {echo 'Reverse-hippies in the code.';}
 else {mysql_error_report($query1,mysql_error(),__FUNCTION__);}
}

PHP 的 __FUNCTION__ 魔术常量是动态的,这意味着当我为任何/所有查询设置错误报告时,我不必手动复制/粘贴函数的名称(那将是静态的);这在更改函数名称时特别有用。

JavaScript(没有任何框架!而不是 Firebug/其他 JavaScript 调试器)是否在以后的迭代中也内置了相同的动态功能?

【问题讨论】:

  • 不是重复的,这个问题包括框架,我的明确禁止它。
  • @John 该问题的最佳答案虽然不涉及框架。也就是说,那里给出的答案在 ES5 严格模式下已弃用,因此可能值得询问是否有人有更新的答案。

标签: javascript


【解决方案1】:
arguments.callee.name

是您正在寻找的。这将返回您所在的函数的名称。

function foo () {
    console.log(arguments.callee.name); //foo
} 

【讨论】:

【解决方案2】:

你总是可以要求一个函数名:)

function tellName(f) {
    console.log(f.name);
}

tellName(console.log);

【讨论】:

    猜你喜欢
    • 2012-12-20
    • 2015-02-16
    • 1970-01-01
    • 2013-01-19
    • 2016-11-04
    • 2016-06-11
    • 1970-01-01
    • 2015-09-10
    • 2016-03-30
    相关资源
    最近更新 更多