次の例を検討してください。
class Parent
@staticMethod = ->
#calleeConstructor = ????
new calleeConstructor().x
class Child1 extends Parent
constructor: ->
@x = 10
class Child2 extends Parent
constructor: ->
@x = 20
#Usage
Child1.staticMethod() #Should return 10
Child2.staticMethod() #Should return 20
出来ますか?
たとえば、親インスタンスメソッドから元のクラスの他の静的メンバーまたはコンストラクターにアクセスできることを知っています。私はこれを意味します:
class Parent
instanceMethod: -> @constructor.staticVar
class Child1 extends Parent
@staticVar = 10
class Child2 extends Parent
@staticVar = 20
#Usage
console.log new Child1().instanceMethod() #Should return 10
console.log new Child2().instanceMethod() #Should return 20