basyura's blog

あしたになったらほんきだす。

関数の名前を取得する

より。

無名関数だと取れないけど、

var add = function() {
}
print(add.name);
//=> 

名前付き関数なら name 属性で関数名を得ることができる。

print(function add() {
  }.name);
//=> add

var add = function add() {
}
print(add.name);
//=> add

変数名と違う名前で定義することもできるけど、

var add = function add2() {
}
print(add.name); //=> add2

呼び出せない。

add2(); 
//=> ReferenceError: add2 is not defined

使いどころがよく分からないし、IE では動かないらしい。