【发布时间】:2017-05-27 21:34:43
【问题描述】:
'use strict';
function foobar(){
console.log(arguments.callee.name); // foobar
}
我听说这曾经有效,但现在已弃用。对于其他情况,似乎还有其他替代方法,我已经看到很多关于使用 function.name 的引用,但必须输入 foobar.name 会破坏目的。在一个类中,我可以使用 this.constructor.name 并获取类的名称。我正在寻找类似的函数名称。
为什么这不是 ES6 以来任何现有问题的重复:一个类似问题的答案谈到使用命名函数,但这是一个命名函数。对于另一个问题,答案是使用 function.name - 但这个问题基本上是在询问是否有办法在不知道名称的情况下记录名称。对于另一个问题,答案是使用 ()=>Function.caller.name 之类的东西,但这是非标准的。
【问题讨论】:
-
@sasha_gud 我认为这个问题非常相似——提问者想在断言消息中输出函数的名称。关于使用命名函数的问题的答案不适合这种情况。这个函数被命名为:foobar。
标签: javascript