2011-06-30 34 views
1

我有一個對象'foo',其中有一個對象字面值作爲屬性,如下所示。在該屬性內部,我想引用對象'foo'而不是對象字面本身。引用類/實例而不是對象字面值屬性的正確方法?

這隻能用黑客來完成,即通過變量名引用對象嗎?或者,還有更好的方法?

以下示例 - 應在成功時打印'woo'。

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') 

在構造函數聲明testthing這樣允許@myfunc被綁定到「實例」,而不是「類」。

你也可以使用的,而不是'bop': @myfunc'bop': => @myfunc()沿着傳遞任何參數:)

+0

恰到好處。只是爲了澄清:在課堂上,'@'指向'Foo'。在構造函數中,它指向正在創建的'Foo'實例。 –

+0

謝謝 - 謝謝,效果很好。 – mikemaccana

相關問題