我是新來的CoffeeScript(和沒有經驗與JS太;很抱歉,如果這是天真的),我試圖創建下面的類:CoffeeScript的類成員
class Test
a: []
make: ->
@a.push ['A', 'B', 'C']
getdata: ->
output = ""
for i in @a
output += i
output
b = new Test
b.make()
alert(b.getdata())
c = new Test
c.make()
alert(c.getdata())
我得到的輸出是: 「A,B,C」 「A,B,C,A,B,C」
儘管創建了'Test'的新實例,該數組會被追加並且不會被清除。我在這裏做錯了什麼?我初始化成員變量是否錯誤?
你應該看看原型是如何工作的,並看看javascript生成的代碼。我在咖啡文本中看到了很多這種錯誤(甚至在教程/食譜中)。我使用的規則是僅定義類成員中的函數和靜態特性(我使用@member語法在構造函數中定義了實例屬性)。是的,它有點混淆關鍵字類咖啡的使用。 – Guillaume86
備註:'getdata: - > @ a.join('')' – tokland
感謝Guillaume86和托克蘭。我從中學到了很多東西。 – Anoop