JavaScript:関数の名前を取得する

Function オブジェクトの name プロパティで関数名を文字列として取得できることを知った。

Node.js の REPL で試してみるよ。

> function func1() {}
undefined
> func1.name
'func1'

ほんとだ。

アロー関数ではどうだろう?

> const func2 = () => {}
undefined
> func2.name
'func2'

ほうほう。代入先の変数名が返ってくるとな。

なら、これを別の変数に代入したら?

> func3 = func2
[Function: func2]
> func3.name
'func2'

えー??

ところで、関数の名前を文字列で取得して何に使えるのかと思ったら eval() があるのね。

でも「使うな」って書いてある。