0

CoffeeScriptで、両方のクラスインスタンスが3番目のクラスに格納されるように、別のクラスからクラスメソッドを呼び出すにはどうすればよいですか?

デモンストレーション:

class A

  constructor: () ->

    @b = new B
    @c = new C

class B

  methodB: () ->

class C

  methodC: () ->
    ### How would I call instance b's methodB from here? ###
4

2 に答える 2

1

Aこれを行う唯一の方法は、クラスのインスタンスへの参照を持つことです。たとえば、あなたが正しくやろうとしていることを私が理解している場合:

class A
  constructor: () ->
    @b = new B
    @c = new C(this)

class B
  methodB: () ->

class C
  constructor (@parent) ->
  methodC: () ->
    @parent.b.methodB()

のインスタンスはC、のインスタンスがそれを参照していることを認識していません。それを構築したものに「属する」Aという組み込みの概念はありません(存在する場合は意味がありません)。それを明示的にする必要があります。ca

于 2013-02-23T23:15:42.503 に答える
0

他のクラスのインスタンスへの参照が必要になります。

class A

  constructor: () ->
    @b = new B
    @c = new C

    @c.setB(@b)
    @c.methodC() # Also calls B.methodB()

class B

  methodB: () ->


class C

  methodC: () ->
    @b.methodB()

  setB: (@b) ->
于 2013-02-23T23:19:18.877 に答える