2011-06-30 6 views
1

私は以下のようにオブジェクトリテラルをプロパティとして持つオブジェクト 'foo'を持っています。そのプロパティの中で、オブジェクトリテラルではなく、オブジェクト 'foo'を参照したいと思います。オブジェクトリテラルプロパティではなく、クラス/インスタンスを参照する正しい方法ですか?

これは、ハックを使用してのみ実行できます。つまり、変数名でオブジェクトを参照できますか?それとも良い方法がありますか?

以下の例は、成功すると 'woo'を出力します。これは@myfuncは「インスタンス」ではなく「クラス」にバインドすることを可能にするようにコンストラクタでtestthingを宣言

class Foo 
    myfunc: => 
    console.log('woo') 
    testthing: { 
    'foo':'bar' 
    'baz':'boo' 
    'bop': => 
     @myfunc() 
    } 

window.foo = new Foo 

foo.testthing.bop() 

答えて

3
class Foo 
    constructor: -> 
    @testthing = 
     'foo':'bar' 
     'baz':'boo' 
     'bop': => @myfunc() 
    myfunc: => 
    console.log('woo') 

また、任意の引数に沿って通過する'bop': @myfuncの代わり'bop': => @myfunc()を使用することができます:)

+0

右の鼻の上に。クラス本体で '@'が 'Foo'を指しています。コンストラクタでは、作成中の 'Foo'インスタンスを指しています。 –

+0

ありがとう - ありがとうございます。 – mikemaccana

関連する問題