2013-07-15 86 views
1

如何在Javascript中的函数内获取函数名称?在javascript中获取函数名称

特别是在道场,因为这似乎并没有做的工作

arguments.callee.caller 
+1

arguments.callee.name是您正在查找的内容,但如果您希望对未来更友好,则应使用硬编码的名称。 – dandavis

+0

感谢Dan,arguments.callee.name是未定义的。我想避免硬编码值。我有一个函数名称。 – DMM

回答

1

在道场,如果功能是通过道场声明一个类的方法/ _base /宣告你可以得到它通过:

arguments.callee.nom 

http://dojotoolkit.org/reference-guide/1.9/dojo/_base/declare.html

每一个方法,通过道场混合/ declare()或safeMixin()被注释:添加一个名为nom的特殊属性。它包含有问题的方法的名称,并由inherited()和getInherited()用于推导超类方法的名称。有关更多详细信息,请参阅safeMixin()

3

无论arguments.callee.name定义与否取决于函数是如何定义的。如果函数被定义为Named function expression,将会定义它。否则,你将不会获得这些信息。

+0

感谢您的回复piokuc。我宣布我的功能如下 setmain:function(){...} 它在dojo – DMM

+1

'setmain'函数没有名称。如果你希望它有一个名字,你可以在'function'关键字之后给它一个名字:'setmain:function setmain(){...} –