私は Coffee Script を始めたばかりで、クラス拡張がどのように機能するかを理解するのに問題があります。親クラスでインスタンス プロパティとして定義されたプロパティは、そのクラスが拡張されたときに静的プロパティとして実装されているようです。
Foo という名前のクラスがあり、これを 2 つのサブクラス Bar と Goo の基本クラスとして使用したいと考えています。Foo に foobs というインスタンス プロパティと、foob を追加するメソッドを次のように指定します。
class Foo
foobs:[]
addFoob: (foob) ->
@foobs.push(foob)
そして、Foo を Bar と Goo で拡張し、次のように新しいインスタンスを作成します。
class Bar extends Foo
otherMethod: ->
alert 'doing other stuff'
class Goo extends Foo
secondMethod: ->
alert 'doing second stuff'
barInstance = new Bar()
gooInstance = new Goo()
しかし、Foob を barInstance に追加すると、gooInstance にも追加されます!
barInstance.addFoob('test')
console.log gooInstance.foobs (outputs ["test"])
明らかに、私はここで何か間違ったことをしています。barInstance と gooInstance にそれぞれ独自の「foobs」プロパティを持たせたいのですが、何らかの理由で foobs は Foo のインスタンス プロパティであるにもかかわらず、Bar と Goo のクラス プロパティとして割り当てられているようです。これを回避する方法についてのアイデアはありますか? それとも、私が知らない別の構文があるのでしょうか?
ありがとう