どうすればこれを機能させることができるのでしょうか。
オンクリックでメソッドを参照しようとしています
class C
@f: () ->
alert 'works'
null
constructor: () ->
console.log @f # why is this undefined?
document.onclick = @f
new C()
どうすればこれを機能させることができるのでしょうか。
オンクリックでメソッドを参照しようとしています
class C
@f: () ->
alert 'works'
null
constructor: () ->
console.log @f # why is this undefined?
document.onclick = @f
new C()
これは、コンストラクター関数自体@f
にコンパイルされthis.f
、コンストラクター関数であるためです。this
クラスメソッドにアクセスするf
には、次のように記述する必要がありますC.f
。
class C
@f: () ->
alert 'works'
null
constructor: () ->
console.log C.f
document.onclick = C.f
クラスメソッドではなく、インスタンスメソッドをバインドしたいと思います
class C
#this defines a class method
@f: () ->
alert 'works'
null
#this is an instance method
f: () ->
alert 'works'
null
constructor: () ->
console.log @f # why is this undefined?
document.onclick = @f
new C()