次のコードがあります
class Foo
a: ->
console.log arguments.callee.name
b: ->
@a()
c: ->
@a()
f = new Foo
f.b() #=> should output 'b'
f.c() #=> should output 'c'
質問: クラス内の呼び出し関数の名前を取得するにはどうすればよいですか?
ユースケースはこちら
class Something extends Stream
foo: ->
_helper 'foo', 'a', 'b', 'c'
bar: ->
_helper 'bar', 'my neighbor totoro'
dim: ->
_helper 'dim', 1, 2, 3
sum: ->
_helper 'sum', 'hello', 'world'
_helper: (command, params...) ->
@emit 'data', command, params...
something = new Something
something.foo()
something.bar()
# ...
_helper
プライベートメソッドへの呼び出しごとにメソッド名を重複して送信する必要はありません。