【发布时间】:2014-03-19 03:13:37
【问题描述】:
我在这里阅读了很多关于如何使用堆栈溢出的帖子
arguments.callee.caller or arguments.callee.caller.toString()
如果你做一个简单的搜索,你可以找到一堆关于这个的帖子。
所以,我决定自己试试这个!但是,我想在 javascript 对象中找到函数的名称,但它似乎返回的是函数内部的代码,而不是实际的函数名称。
这里是 jsFiddle:http://jsfiddle.net/4Cp5Z/18/。
总而言之,我制作了一个新应用程序,然后致电app.testFunction。 testFunction() 调用 receiver(),我希望 var name 等于 testFunction
app = function() {
this.testFunction = function() {
this.receiver();
};
this.receiver = function() {
var name = this.receiver.caller.toString();
// this.receiver.caller.name outputs nothing...
};
};
【问题讨论】:
-
你正在做的事情看起来像是一种非常严重的“代码异味”。您真正想要达到什么目的?
-
我真的只是想学习如何获取调用我当前函数的函数(或命名函数表达式)的名称。我这样做是为了记录/错误处理的目的。
-
在那种情况下you should check this out。
标签: javascript