Javascriptで関数内の関数名を取得するにはどうすればよいですか?
具体的には Dojo では、これではうまくいかないようです。
arguments.callee.caller
Javascriptで関数内の関数名を取得するにはどうすればよいですか?
具体的には Dojo では、これではうまくいかないようです。
arguments.callee.caller
が定義されているかどうかarguments.callee.name
は、関数がどのように定義されたかによって異なります。関数がNamed function expressionとして定義された場合に定義されます。そうしないと、この情報が得られません。
dojo では、関数が dojo/_base/declare で宣言されたクラスのメソッドである場合、次の方法で取得できます。
arguments.callee.nom
http://dojotoolkit.org/reference-guide/1.9/dojo/_base/declare.htmlを参照してください。
dojo/declare() または safeMixin() によって混合されるすべてのメソッドには注釈が付けられます。nom という特別なプロパティが追加されます。問題のメソッドの名前が含まれており、スーパークラス メソッドの名前を推測するために inherited() および getInherited() によって使用されます。詳細については、 safeMixin()を参照してください。