JavaScriptにはプライベートがないので、CoffeeScriptにはプライベートがありません。次のように、クラスレベルで物事をプライベートにすることができます。
class C
private_function = -> console.log('pancakes')
これprivate_function
は、内でのみ表示されますC
。問題は、それprivate_function
が単なる関数であり、のインスタンスのメソッドではないということですC
。Function.apply
またはを使用してこれを回避できますFunction.call
:
class C
private_function = -> console.log('pancakes')
m: ->
private_function.call(@)
したがって、あなたの場合、次のようなことができます。
class FirstClass
btnClick = -> console.log('FirstClass: ', @)
constructor: ->
$('.btn').click => btnClick.call(@)
class SecondClass extends FirstClass
btnClick = -> console.log('SecondClass: ', @)
デモ: http: //jsfiddle.net/ambiguous/5v3sH/
@
または、特に何かをする必要がない場合はbtnClick
、関数をそのまま使用できます。
class FirstClass
btnClick = -> console.log('FirstClass')
constructor: ->
$('.btn').click btnClick
デモ: http: //jsfiddle.net/ambiguous/zGU7H/