2014-09-29 41 views
1

爲什麼這種差異:爲什麼|| =沒有編譯,如果我們使用[]或不在coffeescript?

class Foo 
    getTest: -> 
    @test ||= 42 

編譯:

return this.test || (this.test = 42); 

不同的

class Foo 
    getTest: -> 
    @test['bar'] ||= 42 

在編譯:

var _base; 
return (_base = this.test)['bar'] || (_base['bar'] = 42); 

什麼用處這個變量的「_base」?!

return this.test['bar'] || (this.test['bar'] = 42); 

是一個好方法,不是嗎?

thx。

回答

相關問題