Firefoxで関数を定義し、その関数のnameプロパティを参照すると関数名が取得できる。ただし、hasOwnPropertyでnameプロパティを持っているかを調べるとfalseと返ってくる。
function a() {} alert(a.name); >>a alert(a.hasOwnProperty("name")); >>false
その出所は、arguments.callee.nameらしい。
「arguments.callee.name」というnameプロパティから関数名を取得することが出来ます。
http://hisasann.com/housetect/2008/02/javascriptcallee.html
function a() { alert(arguments.callee.name); } a(); >>a
ちなみにこのコード、Opera9.61やSafari1.3.2ではundefinedになる。さらに、Safari1.XはhasOwnPropertyメソッドを実装していないのね。
http://futuremix.org/2006/03/safari-hasownproperty